在我参与过的一个 C# 项目中,我遇到了以下代码:
var session = new Session
{
Application = /*!!!*/
{
PublicApplicationId = appId
},
LastActivityTime = DateTime.Now - TimeSpan.FromTicks(1)
};
Run Code Online (Sandbox Code Playgroud)
我很久以前就见过它,但直到现在我才接触到它。
我无法再访问源代码,所以不知道Session类是什么意思。
但我想知道这在语法上怎么可能?
为什么该Application属性仅由大括号中的一些类似 JSON 的对象初始化?
有任何想法吗?
添加: / !!!/ - 我写这个评论是为了标记这个奇怪的地方。那里什么都没有,没有“new SomeClass”
UPD:感谢您的回答!这是此功能的更易于理解的描述:https://fuqua.io/blog/2020/12/a-lesser-known-csharp-feature-nested-object-initializers/