所以 id 喜欢找到方法组 id 隐式转换为委托(delegate)的地方,例如:
EventHandler a = method;
并将它们与显式委托(delegate)创建区分开来
EventHandler a = new EventHandler(method);
两者的类型信息和转换看起来完全相同。有没有一种方法可以使用语义模型来做到这一点,而无需遍历树并尝试找到父新对象表达式?
最佳答案
这些地方可以通过遍历二进制表达式节点并查看右表达式转换来大致找到:
void VisitBinaryExpression(BinaryExpressionSyntax binaryExpression)
{
var conversion = semanticModel.GetConversion(binaryExpression.Right);
if (conversion.IsMethodGroup)
{
}
}
它看起来不太可靠,但这是我到目前为止发现的。
关于c# - 如何检测在 Roslyn 中委托(delegate)转换的隐式方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715815/