Vb.net 使用Roslyn和VB获取Lambda的类型

Vb.net 使用Roslyn和VB获取Lambda的类型,vb.net,lambda,roslyn,Vb.net,Lambda,Roslyn,如何使用Visual Basic获取Lambda的类型 SyntaxKind.FunctionLambdaHeader, SyntaxKind.MultiLineFunctionLambdaExpression, SyntaxKind.MultiLineSubLambdaExpression, SyntaxKind.SingleLineFunctionLambdaExpression, SyntaxKind.SingleLineSubLambdaExpression, SyntaxKind.Su

如何使用Visual Basic获取Lambda的类型

SyntaxKind.FunctionLambdaHeader,
SyntaxKind.MultiLineFunctionLambdaExpression,
SyntaxKind.MultiLineSubLambdaExpression,
SyntaxKind.SingleLineFunctionLambdaExpression,
SyntaxKind.SingleLineSubLambdaExpression,
SyntaxKind.SubLambdaHeader
我不确定我是否需要处理以上6个问题

我希望能够将As子句添加到变量声明中,如下所示

Dim startPointGetter = Function(part As EnvDTE.vsCMPart) arg.GetStartPoint(part)

我甚至不知道如何手动指定As子句,所以我需要一些帮助。

要想了解类型,至少可以使用
SemanticModel.GetSymbolInfo
了解底层类型。

如果您的意思是
Dim lTypeInfo As TypeInfo=model.GetTypeInfo(ExpressionValue),如果ExpressionValue是上面列出的函数之一,那么我将
lTypeInfo.convertedType.ToString=Function(部分为EnvDTE.vsCMPart)作为EnvDTE.TextPoint`但这仍然不能让我创建一个简单的有意义的AsClause。从
Dim endPointGetter=Function(部分为EnvDTE.vsCMPart)arg.GetEndPoint(部分)开始
I获取
Dim endPointGetter作为函数(部分作为EnvDTE.vsCMPart)作为EnvDTE.TextPoint=Function(部分作为EnvDTE.vsCMPart)arg.GetEndPoint(部分)