当前位置: 首页 > 编程语言 > C#

在Roslyn分析器中检查表达式类型的正确方法?Share

时间:2023-04-10 18:48:21 C#

在Roslyn分析器中检查表达式类型的正确方法?我正在使用Roslyn编写代码分析器,我需要检查ExpressionSyntax是Task还是Task.到目前为止,我有这个:privatestaticboolIsTask(ExpressionSyntaxexpression,SyntaxNodeAnalysisContextcontext){如果(类型==null)返回false;如果(type.Equals(context.SemanticModel.Compilation.GetTypeByMetadataName("System.Threading.Tasks.Task")))返回真;如果(type.Equals(context.SemanticModel.Compilation.GetTypeByMetadataName("System.Threading.Tasks.Task`1")))返回真;返回假;它适用于任务,但不适用于任务或任务...我可以检查名称和命名空间,但这是不切实际的,因为我必须检查命名空间的每个“级别”。有推荐的方法吗?检查类型是否为泛型类型,如果是,则使用OriginalDefinition返回未构造的泛型类型。以上就是C#学习教程:在Roslyn分析器中查看表达式类型的正确方法?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: