using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; // this code assumes you have a SyntaxNode called methodDeclaration var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclaration) as IMethodSymbol; foreach (var parameter in methodSymbol.Parameters) { var parameterType = parameter.Type; // get the ITypeSymbol for the parameter type // do something with parameterType }
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; // this code assumes you have two SyntaxNode called symbol1 and symbol2 var symbol1Type = semanticModel.GetTypeInfo(symbol1).Type; // get the ITypeSymbol for symbol1 var symbol2Type = semanticModel.GetTypeInfo(symbol2).Type; // get the ITypeSymbol for symbol2 if (symbol1Type.Equals(symbol2Type)) { // the types of symbol1 and symbol2 are the same } else { // the types of symbol1 and symbol2 are different }The ITypeSymbol class is part of the Microsoft.CodeAnalysis.CSharp.Utilities NuGet package library.