[英]C# To VB.Net Conversion - array of class objects with initialisation
[英]Conversion of repository pattern class from c# to vb.net
我有以下C#代码:
public T Single(Expression<Func<T, bool>> where)
{
return _dbset.Single<T>(where);
}
我尝试使用转换工具将其转换为vb.net,该转换工具将代码呈现如下:
Public Function [Single](where As Expression(Of Func(Of T, Boolean))) As T
Return _dbset.[Single](Of T)(where)
End Function
这将引发错误“过载解析失败,因为没有可访问的'Single'接受此数量的参数
关于如何纠正这个想法?
出于某种原因,编译器无法绑定到正确的静态方法-可能是因为它不知道您是否要使用Enumerable.Single
或Queryable.Single
。 您可以通过静态调用扩展方法来解决它:
Public Function [Single](where As Expression(Of Func(Of T, Boolean))) As T
Return Queryable.Single(Of T)(_dbset, where)
End Function
我不记得这个原因的原因,但是在这些情况下,通常只需将通用说明符放到方法调用上就可以了:
Public Function Single(ByVal where As Expression(Of Func(Of T, Boolean))) As T
Return _dbset.Single(where)
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.