gpt4 book ai didi

c# - 从 Roslyn 中的方法符号生成方法签名的语法

转载 作者:行者123 更新时间:2023-12-05 04:16:01 24 4
gpt4 key购买 nike

我正在尝试使用 Roslyn(新用户)生成代码。我发现它太冗长了,我只能假设我做错了什么。目前,我正在为给定的 IMethodSymbol(来自接口(interface))生成一个方法的实现:

private static MethodDeclarationSyntax GetMethodDeclarationSyntax(IMethodSymbol methodSymbol)
{
if (methodSymbol.MethodKind != MethodKind.Ordinary)
{
return null;
}

var parameters = methodSymbol
.Parameters
.Select(x => SF
.Parameter(SF.Identifier(x.Name))
.WithType(SF.IdentifierName(x.Type.ToDisplayString(symbolDisplayFormat))));

return SF
.MethodDeclaration(
SF.IdentifierName(methodSymbol.ReturnType.ToDisplayString(symbolDisplayFormat)),
SF.Identifier(methodSymbol.Name))
.WithModifiers(
SF.TokenList(
SF.Token(SyntaxKind.PublicKeyword)))
.WithParameterList(
SF.ParameterList(
SF.SeparatedList<ParameterSyntax>(parameters)));
}

它已经相当庞大了,我还没有考虑实际的实现、通用参数、ref/out 参数等等。

有没有更简单的方法来实现这一点?

最佳答案

对于 VS 2015 CTP 6 和 Roslyn 1.0-rc1 NuGet 包,请查看 SyntaxGenerator class .

关于c# - 从 Roslyn 中的方法符号生成方法签名的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29267922/

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