public static string GetMethodSignature ( this IMethodSymbol methodSymbol, bool shouldOverride = false, string newMethodName = null, // if null - same name Accessibility newAccessibility = Accessibility.NotApplicable, // means the same bool?isVirtualFlag = false, bool isAbstract = false ) { Accessibility accessibility = newAccessibility.GetAccessibility(methodSymbol); string methodName = newMethodName; if (methodName == null) { methodName = methodSymbol.Name; } bool isVirtual = isVirtualFlag ?? methodSymbol.IsVirtual; string result = GetMemberDeclarationCode ( methodName, methodSymbol.ReturnType as INamedTypeSymbol, accessibility, methodSymbol.IsStatic, shouldOverride, isAbstract, isVirtual, methodSymbol.IsAsync ); result += methodSymbol.GetTypeArgsStr(methodSymbol.TypeArguments); result += methodSymbol.Parameters.GetMethodParams(true); return(result); }