2009-07-28 24 views
6
Customer cust = new Customer(); 

Customer是一類。 cust是分配的名稱。我不確定Customer()是什麼...在C#中,「Customer cust = new Customer()」是什麼;「做?

這條線做什麼?我們爲什麼需要它? CustomerCustomer()有沒有重複?

+6

C#的下一個版本將成爲Customer cust = new();如果你問我,它看起來好多了。 – jcollum 2009-07-28 23:49:45

+0

這很好;從`var cust = new Customer()`的下一個邏輯步驟` – 2009-07-28 23:52:42

+0

@jcollum:尼斯,我不知道這一點。太糟糕了,我仍然在VS2005工作:-( – 2009-07-28 23:55:28

回答

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

普通和簡單:
它創建一個新的客戶對象。

0

此行實例化您的對象。基本上,這意味着你有一個客戶對象的新實例被設置爲其預設的默認值。

1

這不僅僅是C#所做的事情,Objective C和Java也是這樣做的。您需要定義您將用於該變量的類。然後你對此感到困惑,那部分是啓動類並將其分配給變量的部分。

NSString *string = [[NSString alloc] initWithString:@"Test"]; 

你可能要考慮Typcasting

2

它聲明瞭一個名爲cust的對象Customer併爲其分配了一個沒有傳遞給對象構造函數參數的類的新實例。

1

如果你不喜歡重複性像我這樣做,使用VAR

var cust = new Customer(); 

...現在卡斯特是強和靜態類型的爲客戶

5

客戶的一個實例()是Customer類上的構造方法。如果您被重複困擾,您可以使用隱式變量聲明:

var cust = new Customer();

1

使用

var cust = new Customer(); 

,以避免重複。一般來說,模式在那裏,以便您可以

1)聲明Customer的一個實例,稱爲cust 2)初始化它。不是說你可以有初始化像

Customer cust = CustomerProvider.NextCustomer(); 
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(); 

等,因爲你創造了正好相同的類型發生重複的變量類型的實例這是唯一。

4

第一個Customer定義了cust變量的數據類型。 new Customer()部分創建一個Customer類的實例並將其分配給該變量。

但不要求數據類型爲Customer。如果你有客戶類繼承不同的類(比如人)或接口(說IPayer),你可以把它定義爲

Person cust = new Customer(); 
IPayer cust = new Customer(); 

這是的Polymorphism在面向對象編程的基本原則之一。

0

這是C#的java-esque樣式顯示。這是您在Java中用於聲明新對象的確切語法。

如果您仍然感到困惑,儘管已經有了很好的答案,但如果您像「int i」那樣考慮「客戶定製」,它可能會讓它更容易混淆。您正在聲明特定類型(客戶)的新變量(cust)。

如果您不熟悉面向對象的編程,只需要一些耐心。面向對象的思維起初有點混亂,但一旦點擊,你就會終其一生。

相關問題