奇怪的C#对象初始化表示法



在代码库中工作时,我发现一行代码似乎初始化了CustomObject(准确地说是ObservableObject(,如下所示:

CustomObject someObject = {Prop1="1", Prop2="2", Prop3="3"}

其中CustomObject有三个字符串属性Prop1、Prop2和Propr3。问题是,我无法在自己的示例项目中重现这样的初始化。这个符号叫什么?对我来说,似乎列表表示法是用来初始化自定义对象的。。。这怎么可能?它肯定不是正在创建的匿名类型。

您看到的是该类的默认属性设置构造。

默认情况下,您可能会看到

var SomeObject = new SomeObjectClass();
SomeObject.Prop1 = "1";
SomeObject.Prop2 = "2";
SomeObject.Prop3 = "3";

使用花括号可以得到相同的结果。你只是在说。。。给我一个给定对象的实例,顺便说一下,请将以下属性设置为我通过…提供的默认值。。。

var SomeObject = new SomeObjectClass{ 
SomeObject.Prop1 = "1",
SomeObject.Prop2 = "2",
SomeObject.Prop3 = "3" };

现在,在您提供的示例上下文中;新的";尝试创建给定类的。

最新更新