在C#中,"Customer cust = new Customer();"是什么 做?

use*_*466 6 c#

Customer cust = new Customer();
Run Code Online (Sandbox Code Playgroud)

Customer是一个班级.cust是指定的名称.我不确定是什么Customer()...

这条线做什么?我们为什么需要它?是不是有CustomerCustomer()有些重复?

Jon*_*eet 49

它创建一个新实例,Customer()并将新创建的对象的引用分配给变量cust.

如果你想删除重复并且你正在使用C#3.0或更高版本并且它是一个局部变量,你可以使用:

var cust = new Customer();
Run Code Online (Sandbox Code Playgroud)

这具有完全相同的含义 - 它仍然是静态类型的,即变量cust仍然非常类型Customer.

现在,在这种情况下它恰好是重复的,但这两个Customer位完全是分开的.第一个是变量的类型,第二个用于表示要调用的构造函数.他们可能是不同的类型:

Customer cust = new ValuedCustomer();
IClient cust = new Customer();
object cust = new Customer();
Run Code Online (Sandbox Code Playgroud)

这只是因为你创建了一个与重复发生的变量类型完全相同的实例.


dan*_*iel 22

它声明一个客户,然后初始化它.

Customer cust; //declares a new variable of Customer type

cust = new Customer(); //Initializes that variable to a new Customer().
Run Code Online (Sandbox Code Playgroud)

new创建实际对象,cust hold是对它的引用.

空括号表示Customer对象的构造没有传递任何参数,否则括号内将有逗号分隔的参数列表.


Jon*_*way 5

Customer()是Customer类的构造方法.如果您对重复感到困扰,可以使用隐式变量声明:

var cust = new Customer();