Customer cust = new Customer();
Customer
是一類。 cust
是分配的名稱。我不確定Customer()
是什麼...在C#中,「Customer cust = new Customer()」是什麼;「做?
這條線做什麼?我們爲什麼需要它? Customer
和Customer()
有沒有重複?
Customer cust = new Customer();
Customer
是一類。 cust
是分配的名稱。我不確定Customer()
是什麼...在C#中,「Customer cust = new Customer()」是什麼;「做?
這條線做什麼?我們爲什麼需要它? Customer
和Customer()
有沒有重複?
它聲明瞭一個客戶,然後對其進行初始化。
Customer cust; //declares a new variable of Customer type
cust = new Customer(); //Initializes that variable to a new Customer().
new創建實際對象,cust hold引用它。
空的圓括號表明Customer對象的構造沒有參數傳遞,否則括號內會有逗號分隔的參數列表。
普通和簡單:
它創建一個新的客戶對象。
此行實例化您的對象。基本上,這意味着你有一個客戶對象的新實例被設置爲其預設的默認值。
這不僅僅是C#所做的事情,Objective C和Java也是這樣做的。您需要定義您將用於該變量的類。然後你對此感到困惑,那部分是啓動類並將其分配給變量的部分。
NSString *string = [[NSString alloc] initWithString:@"Test"];
你可能要考慮Typcasting
它聲明瞭一個名爲cust
的對象Customer
併爲其分配了一個沒有傳遞給對象構造函數參數的類的新實例。
如果你不喜歡重複性像我這樣做,使用VAR
var cust = new Customer();
...現在卡斯特是強和靜態類型的爲客戶
客戶的一個實例()是Customer類上的構造方法。如果您被重複困擾,您可以使用隱式變量聲明:
var cust = new Customer();
使用
var cust = new Customer();
,以避免重複。一般來說,模式在那裏,以便您可以
1)聲明Customer的一個實例,稱爲cust 2)初始化它。不是說你可以有初始化像
Customer cust = CustomerProvider.NextCustomer();
它創建的Customer()
一個新實例,並指定一個參考新創建的對象的變量cust
的其他方式。
如果你想刪除正在使用和 C#3.0或更高版本和這是一個局部變量的重複,你可以使用:
var cust = new Customer();
這已正是相同的意義 - 它仍然是靜態類型的,即變量cust
仍然是非常明確的類型Customer
。
現在,它發生在這種情況下是重複的,但兩個Customer
位是完全分開的。第一個是變量的類型,第二個用於說明調用哪個構造函數。他們本來是不同的類型:
Customer cust = new ValuedCustomer();
IClient cust = new Customer();
object cust = new Customer();
等,因爲你創造了正好相同的類型發生重複的變量類型的實例這是唯一。
Customer cust
明確聲明cust
爲Customer
類型。
Customer cust = new Customer();
通過構建新的Customer
初始化。請參閱Implicitly Typed Local Variables (C# Programming Guide)。
請記住,LHS變量不必與RHS上構建的對象類型相同。例如,如果是Customer
的Contact
一個亞類中,
Contact cust = new Customer();
第一個Customer定義了cust變量的數據類型。 new Customer()
部分創建一個Customer類的實例並將其分配給該變量。
但不要求數據類型爲Customer
。如果你有客戶類繼承不同的類(比如人)或接口(說IPayer),你可以把它定義爲
Person cust = new Customer();
IPayer cust = new Customer();
這是的Polymorphism在面向對象編程的基本原則之一。
這是C#的java-esque樣式顯示。這是您在Java中用於聲明新對象的確切語法。
如果您仍然感到困惑,儘管已經有了很好的答案,但如果您像「int i」那樣考慮「客戶定製」,它可能會讓它更容易混淆。您正在聲明特定類型(客戶)的新變量(cust)。
如果您不熟悉面向對象的編程,只需要一些耐心。面向對象的思維起初有點混亂,但一旦點擊,你就會終其一生。
C#的下一個版本將成爲Customer cust = new();如果你問我,它看起來好多了。 – jcollum 2009-07-28 23:49:45
這很好;從`var cust = new Customer()`的下一個邏輯步驟` – 2009-07-28 23:52:42
@jcollum:尼斯,我不知道這一點。太糟糕了,我仍然在VS2005工作:-( – 2009-07-28 23:55:28