這篇文章主要通過演示類在不同發展中的不通過定義方法,來向讀者表述它們之間的區別和聯絡。
在c#1時代,我們喜歡這樣定義類:
publicclass
product
}private
decimal
_price;
public
decimal
price
}public product(string name, decimal
price)
public
static
arraylist getarraylist()
public
override
string
tostring()
--", _name, _price);
}}
侷限性:
1、arraylist沒有提供與其內部內容有關的編譯時資訊,如果不慎寫錯,編譯器也不會出現任何提示;
2、**中為屬性提供了公共的取值方法,這意味著如果新增對應的賦值方法,那麼賦值方法必須是共有的;
3、用於建立屬性和變數的**很複雜,這違背了我們進行封裝的原本意願;
在c#2時代,我們喜歡這樣定義類:
publicclass
product
private
set
}private
decimal
_price;
public
decimal
price
private
set
}public product(string name, decimal
price)
public
static listgetarraylist()
public
override
string
tostring()
--", name, price);
}}
現在,屬性擁有了私有的賦值方法,並且它能非常聰明的「猜出」list是告知編譯器列表中只能包含product。試圖將乙個不同型別新增到列表中會造成編譯時錯誤,並且當你從列表中獲取結果時,也並不需要轉化結果的型別;有效的解決了c#1中的前兩個問題;
在c#3時代,我們喜歡這樣定義類:
publicclass
product
public
decimal
price
public
product(){}
public
static listgetarraylist()
,new product ,
new product };}
public
override
string
tostring()
--", name, price);
}}
發展到這個階段,我們可以很明顯的發現,不再有任何**(或者可見的變數)與屬性關聯,而且硬編碼的列表是以一種全然不同的方式構建,這樣一來,我們實際上是完全可以刪除就有的建構函式,但是外部**就不能再建立其他的產品例項。自動熟悉大大簡化了操作;
在c#4時代,我們喜歡這樣定義類:
publicclass
product
}private
readonly
decimal
_price;
public
decimal
price
}public product(string name,decimal
price)
public
static listgetarraylist();}
public
override
string
tostring()
--", name, price);
}}
在這個特定的示例中,c#4的特性的好處還不是很明顯,但當方法或建構函式包含多個引數時,它可以是**的含義更加清-特別是當引數型別相同,或某個引數為null時。當然,你可以選擇什麼時候使用該特性,只在是**更好的理解時才指定引數的名稱;
總結:c#1(唯讀屬性,弱型別集合)------》c#2(私有屬性賦值方法,強型別集合)------》c#3(自動實現的熟悉,增強的集合和物件初始化)------》c#4(用命名實參更清晰的呼叫建構函式和方法)
注:由於c#5在這方面的特性表現的沒有太大變化,所以就不再表述。
C 之資料型別
c 之資料型別 c 中的資料型別總的來說可以分為兩大類 1.值型別 常見值型別為 int double float char 結構體等 2.引用型別 如使用者定義的類 介面 字串等 以下簡介幾個常用基本型別 int double float char string這些都是關鍵字,是微軟為了方便定義的...
c之資料型別
在 c 語言中,資料型別指的是用於宣告不同型別的變數或函式的乙個廣泛的系統。變數的型別決定了變數儲存占用的空間,以及如何解釋儲存的位模式。c 中的型別可分為以下幾種 序號型別與描述 1基本型別 它們是算術型別,包括兩種型別 整數型別和浮點型別。2列舉型別 它們也是算術型別,被用來定義在程式中只能賦予...
C 學習之 資料型別
內容摘自書籍 c 程式設計.慕課版 型別 1.整型型別 整型型別代表一種沒有小數點的整數數值。2.浮點型別 浮點型別主要用於處理含有小數的數值型別,包含 float double和decimal三種型別。如果不做任何設定,包含小數點的數值都被認為是double型別。3.布林型別 布林型別主要用來表示...