c# 没有大括号的记录
c# record without curly brackets
我偶然注意到以下代码可以编译(VS2022preview,c#10):
record R {
public R() {}
int I;
}
record B : R; // no curly brackets !
我很好奇 B
在没有大括号的情况下如何工作?这符合标准吗?
(如果我将记录更改为 class,这将不起作用)
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/records
几乎与文档中所说的一样。 C# 9.0 引入了许多此类更改。顶级程序文件、顶级命名空间声明等,他们摆脱了强制花括号。
在记录 https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/records 的 C# 语言规范中,record_body
子句指定为
record_body
: '{' class_member_declaration* '}' ';'?
| ';'
;
因此,大括号可以省略。
我偶然注意到以下代码可以编译(VS2022preview,c#10):
record R {
public R() {}
int I;
}
record B : R; // no curly brackets !
我很好奇 B
在没有大括号的情况下如何工作?这符合标准吗?
(如果我将记录更改为 class,这将不起作用)
https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/tutorials/records
几乎与文档中所说的一样。 C# 9.0 引入了许多此类更改。顶级程序文件、顶级命名空间声明等,他们摆脱了强制花括号。
在记录 https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-9.0/records 的 C# 语言规范中,record_body
子句指定为
record_body
: '{' class_member_declaration* '}' ';'?
| ';'
;
因此,大括号可以省略。