![](/img/trans.png)
[英]How do I change a field type using FieldTypeDeclaration ( Roslyn )
[英]How do I generate an array type in a Roslyn code generator?
我想生成一个返回类型为Foo[]
。 我的代码大致如下所示( using static SyntaxFactory
):
var methodDecl = MethodDeclaration(
returnType: ArrayType(IdentifierName("Foo")),
identifier: Identifier("Bar"),
parameterList: ParameterList(),
body: Block(ReturnStatement(LiteralExpression(SyntaxKind.NullLiteralExpression))),
// ...
);
在调试Visual Studio窗口中执行重构时,它不会生成Foo[]
类型的[]
部分:
Foo Bar()
{
return null;
}
如何使其生成实际的Foo[]
类型?
数组类型的[]
部分称为等级说明符 。 等级说明符描述数组的大小和维度àla int[10,3][12]
。
ArrayType
工厂方法创建一个完全不具有RankSpecifiers
的ArrayTypeSyntax
。 要生成常用的Foo[]
语法,您需要为其指定一个空的秩说明符。
ArrayType(IdentifierName("Foo"), SingletonList(ArrayRankSpecifier()))
对我来说,默认值似乎有点愚蠢,因为一维数组是最常见的。 据我所知,这在任何地方都没有记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.