gpt4 book ai didi

c# - 检查 argumentSyntax 是否有效以使用具有 IParameterSymbol 的方法调用

转载 作者:行者123 更新时间:2023-11-30 23:32:06 27 4
gpt4 key购买 nike

我有两种方法:

public void Method1(object[] args); // In Class A
public void Method2(string a, SomeClass b); // In Class B

还有 2 个类:

public class SomeClass {}
public class FromSomeClass : SomeClass {}

以及我使用 Roslyn 分析的代码:

var c = new FromSomeClass();
Method1("a", c);

我想分析 Method1 Call 并检查它是否也是一个有效的 Method2 Call,意思是:

Method2("a", c); // will this run ok?

我到了从语义模型 (IParameterSymbol) 得到 Method2 的地步对于调用中的每个参数,我都有 ITypeSymbol。如何检查参数类型对此 IParameterSymbol 是否有效? (继承和隐式转换)?

最佳答案

您可以调用 CSharpCompilation.ClassifyConversionVisualBasicCompilation.ClassifyConversion 来确定是否存在转换。请注意,这些方法是特定于语言的,因为每种语言都有一些独特的转换规则。

关于c# - 检查 argumentSyntax 是否有效以使用具有 IParameterSymbol 的方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34411078/

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