Customer cust = new Customer();
Customer
是一个班级。 cust
是指定的名称。我不确定Customer()
做了什么......
这条线做什么?我们为什么需要它?是不是Customer
和Customer()
有点重复?
答案 0 :(得分:49)
它创建Customer()
的新实例,并将对新创建的对象的引用分配给变量cust
。
如果你想删除重复和你正在使用C#3.0或更高版本和它是一个局部变量,你可以使用:
var cust = new Customer();
完全具有相同的含义 - 它仍然是静态类型的,即变量cust
仍然非常明确地属于Customer
类型。
现在,在这种情况下发生了重复,但两个Customer
位完全是分开的。第一个是变量的类型,第二个用于表示要调用的构造函数。它们可能是不同的类型:
Customer cust = new ValuedCustomer();
IClient cust = new Customer();
object cust = new Customer();
等。这只是因为您创建的的实例与重复发生的变量类型相同。
答案 1 :(得分:22)
宣告客户,然后对其进行初始化。
Customer cust; //declares a new variable of Customer type
cust = new Customer(); //Initializes that variable to a new Customer().
new创建实际对象,cust hold是对它的引用。
空括号表示没有参数传递Customer对象的构造,否则括号内会有逗号分隔的参数列表。
答案 2 :(得分:5)
Customer()是Customer类的构造方法。如果您对重复感到困扰,可以使用隐式变量声明:
var cust = new Customer();
答案 3 :(得分:4)
第一个Customer定义cust变量的数据类型。 new Customer()
部分创建Customer类的实例并将其分配给变量。
但是,数据类型不是Customer
。如果Customer类继承了另一个类(比如Person)或接口(比如IPayer),你可以将它定义为
Person cust = new Customer();
IPayer cust = new Customer();
这是面向对象编程中Polymorphism的基本原则之一。
答案 4 :(得分:3)
Customer cust
明确声明cust
属于Customer
类型。
Customer cust = new Customer();
通过构建新的Customer
来初始化它。
另见Implicitly Typed Local Variables (C# Programming Guide)。
请记住,LHS变量不必与RHS上构造的对象的类型相同。例如,如果Customer
是Contact
的子类,
Contact cust = new Customer();
答案 5 :(得分:2)
简单明了:
它创建了一个新的类客户对象。
答案 6 :(得分:2)
它声明了一个名为Customer
的{{1}}对象,并为其分配了一个新的类实例,没有将参数传递给对象的构造函数。
答案 7 :(得分:1)
这不仅仅是C#所做的,Objective C和Java也是这样做的。您需要定义将用于该变量的类。然后你感到困惑的是,那部分是启动类并将其分配给变量的。
NSString *string = [[NSString alloc] initWithString:@"Test"];
您可能需要查看Typcasting
答案 8 :(得分:1)
如果你像我一样讨厌重复性,请使用var
var cust = new Customer();
...而且cust现在强烈和静态类型作为客户的实例
答案 9 :(得分:1)
使用
var cust = new Customer();
避免重复。一般来说,模式是存在的,所以你
1)声明一个名为cust的Customer实例 2)初始化它。并不是说你可以有其他的初始化方式,如
Customer cust = CustomerProvider.NextCustomer();
答案 10 :(得分:0)
此行实例化您的对象。基本上,这意味着您有一个Customer对象的新实例,该实例设置为其预设默认值。
答案 11 :(得分:0)
这是C#的java-esque风格。这是您在Java中用于声明新对象的确切语法。
如果您仍然感到困惑,虽然已经有了很好的答案,但如果您像“int i”一样想到“客户委托”,可能会让您感到困惑。您正在声明某个类型(客户)的新变量(cust)。
如果您是面向对象编程的新手,那只需要一些耐心。 OO的思考起初有点令人困惑,但一旦点击,你就会终生得到它。