gpt4 book ai didi

c# - 如何检测在 Roslyn 中委托(delegate)转换的隐式方法?

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:05 26 4
gpt4 key购买 nike

所以 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com