相关疑难解决方法(0)

为什么C#3.0对象初始化器构造函数括号是可选的?

似乎C#3.0对象初始化程序语法允许在存在无参数构造函数时排除构造函数中的打开/关闭括号对.例:

var x = new XTypeName { PropA = value, PropB = value };
Run Code Online (Sandbox Code Playgroud)

相反:

var x = new XTypeName() { PropA = value, PropB = value };
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么构造函数打开/关闭括号对后面是可选的XTypeName

c# syntax types language-design initializer

111
推荐指数
4
解决办法
1万
查看次数

在c#中使用这两种方式初始化对象之间的区别

一般情况下initialize,object当我list 用这种方式将它添加到一个时候即刻- >

list.add(
   new foo() {                       //     <--- foo()
      field1 = value1,
      field2 = value2 
   }
);
Run Code Online (Sandbox Code Playgroud)

但是一旦我尝试了--->

list.add(
   new foo {                     //     <--- foo
      field1 = value1,
      field2 = value2 
   }
);
Run Code Online (Sandbox Code Playgroud)

& 有效 !!!

在第二种方式,我只是creating一个object没有使用()它的尾巴.那么有没有人知道这些初始化对象的各种方法之间的区别?

c# class object

24
推荐指数
3
解决办法
2115
查看次数

标签 统计

c# ×2

class ×1

initializer ×1

language-design ×1

object ×1

syntax ×1

types ×1