아주 간단한 람다 식을 파싱 할 때 이상한 문제에 직면하고 있습니다.vb.net 대 C# 람다 식
는 C#에서 난은 NodeType이
class Class1
{
}
class Class2 : Class1
{ }
class Invoker
{
public System.Linq.Expressions.Expression<Func<Class1>> GetExpression()
{
return() => new Class2();
}
}
이 예상 복귀 같은 식을 가질 = 뉴 VB.NET, 난이 람다를 반환
Public Class Class1
End Class
Public Class Class2
Inherits Class1
End Class
Public Class Invoker
Public Function GetExpression() As Expression(Of Func(Of Class1))
Return Function() New Class2()
End Function
End Class
이
NodeType = Convert (?????) 표현식
변환 f와 관련 있다고 가정합니다. ROM Expression (Of Func (Of Class2)) to Expression (Of Func (Of Class1))
Option Strict와 같은 프로젝트 속성을 사용하여 재생 해봤는데 VB에서 작동하지 않습니다.
VB에서 올바른 람다 식을 얻을 수있는 방법이 있습니까? EnterpriseLibrary TraceListener를 구현하려면이 기능이 필요합니다. GetExpression()을 호출하는 기본 클래스는 람다의 유효성을 검사하고이를 System.Linq.Expressions.NewExpression으로 캐스팅하려고합니다 (Convert 때문에 UnaryExpression이므로 VB에서 실패합니다).
감사
르노
미안 해요, 난 잊었
NodeType == ExpressionType.Lambda
와 표현을 반환 언급 난 VS 2010 with. NET 4.0을 사용하고 있습니다. –