int num = ;
int num1=new int[10];
num1[2] = 9;
int in1 = ;
var arr = new int ;
陣列建立可以包含許多物件或值的變數型別。但陣列有一定的限制。最大的限制是一旦建立好陣列,它們的大小就是固定的,不能在現有陣列的末尾新增新項,除非建立乙個新的陣列。
集合類一般用於處理物件列表,其功能比簡單陣列要多,功能大多是通過實現system.collections 命名空間中的介面而獲得的,因此集合的語法已經標準化.
集合的功能(包括基本功能,例如,用[index]語法訪問集合中的項)可以通過介面來實現,該介面不僅沒有限制我們使用基本集合類,例如system.array,相反,我們還可以建立自己的定製集合類。這些集合可以專用於要列舉的物件(即要從中建立集合的物件)。這麼做的乙個優點是定製的集合類可以是強型別化的。也就是說,從集合中提取項時,不需要把它們轉換為正確的型別。另乙個優點是提供專用的方法.
system.collections 命名空間中的幾個介面提供了基本的組合功能:
ienumerable 可以迭代集合中的項。
icollection(繼承於ienumerable)可以獲取集合中項的個數,並能把項複製到乙個簡單的陣列型別中。
ilist(繼承於ienumerable 和icollection)提供了集合的項列表,允許訪問這些項,並提供其他一些與項列表相關的基本功能。
idictionary(繼承於ienumerable 和icollection)類似於ilist,但提供了可通過鍵值(而不是索引)訪問的項列表。
陣列與集合的區別
對於簡單的陣列來說,只有用固定的大小來初始化陣列,才能使用它。標準語法建立陣列animalarray。
animal animalarray = new animal[2];
而arraylist 集合不需要初始化其大小,所以可以使用以下**建立列表animalarraylist:
arraylist animalarraylist = new arraylist();
這個類還有另外兩個建構函式。第乙個建構函式把現有的集合作為乙個引數,把現有集合的內容複製到新例項中;而另乙個建構函式通過乙個引數設定集合的容量(capacity)。這個容量用乙個int值指定,設定集合中可以包含的初始項數。但這並不是真實的容量,因為如果集合中的項數超過了這個值,容量就會自動增加一倍。
因為陣列是引用型別(例如,animal 和animal 派生的物件),所以用乙個長度初始化陣列並沒有初始化它所包含的項。要使用乙個指定的項,該項還需要初始化,即需要給這個項賦予初始化了的物件。
arraylist 集合可以用addrange()方法一次新增好幾個項。這個方法接受帶有icollection 介面的任何物件,包括前面的**所建立的animalarray 陣列:
animalarraylist.addrange(animalarray);
迭代器迭代器的定義是,它是乙個**塊,按順序提供了要在foreach 迴圈中使用的所有值。一般情況下,這個**塊是乙個方法,但也可以使用屬性訪問器和其他**作為為迭代器
無論**塊是什麼,其返回型別都是有限制的。與期望正好相反,這個返回型別與所列舉的物件典型不同。兩種可能的返回型別是前面提到的介面型別lienumerable 和ienumerator。使用這兩個型別的場合是:
如果要迭代乙個類,可使用方法getenumerator(),其返回型別是ienumerator。
如果要迭代乙個類成員,例如乙個方法,則使用ienumerable。
在迭代器塊中,使用yield 關鍵字選擇要在foreach 迴圈中使用的值。其語法如下:
yield return ;
可以實現乙個迭代器,來控制迴圈**如何在其迴圈過程中取值。要迭代乙個類,需要實現getenumerator()方法,其返回型別是ienumerator。要迭代類的成員,例如方法,可以使用ienumerable返回型別。在迭代器的**塊中,使用yield 關鍵字返回值
is 運算子的語法如下:
is 這個表示式的結果如下:
如果是乙個類型別,而也是該型別,或者它繼承了該型別,或者它可以封箱到該型別中,則結果為true。
如果是乙個介面型別,而也是該型別,或者它是實現該介面的型別,則結果為true。
如果是乙個值型別,而也是該型別,或者它可以拆箱到該型別中,則結果為true。
icomparable 和icomparer 介面是.net framework 中比較物件的標準方式。這兩個介面之間的差別如下:
icomparable 在要比較的物件的類中實現,可以比較該物件和另乙個物件。
icomparer 在乙個單獨的類中實現,可以比較任意兩個物件
一般使用icomparable 給出類的預設比較**,使用其他類給出非預設的比較**。icomparable 提供了乙個方法compareto(),這個方法接受乙個物件。
.net framework 在類comparer 上提供了icomparer 介面的預設實現方式,類comparer 位於
system.collections 命名空間中,可以對簡單型別以及支援icomparable 介面的任意型別進行特定文化的比較
as 運算子使用下面的語法,把一種型別轉換為指定的引用型別:
as 這只適用於下列情況:
的型別是型別
可以隱式轉換為型別
可以封箱到型別中
如果不能從轉換為,則表示式的結果就是null。
新建陣列 陣列的索引 與長度
2.陣列的索引 與 長度 總結 new array 5 中5是陣列長度 乙個引數 new array 5,6 中 5,6 是陣列內容 多個引數 索引都是屬性名,但只有自然數 才是索引,負數,非數字 索引 會變成陣列的屬性,陣列的屬性不會影響陣列的長度 索引沒必要連續,陣列length 最大的下標in...
新建WINDOWS服務C
當前作業環境 windows8.1 visual studio 2013 一.建立專案,選擇 windows服務 模板 二.檢視生成的專案,結構很像winform的專案,其中program.cs是程式入口,service1.cs是服務類.service1.cs,按f7從設計檢視轉到 服務類繼承自服務...
PHP陣列 新建乙個陣列(短陣列)
可以用 array 語言結構來新建乙個陣列。它接受任意數量用逗號分隔的 鍵 key 值 value 對。array key value 鍵 key 可是是乙個整數 或字串 值 value 可以是任意型別的值最後乙個陣列單元之後的逗號可以省略。通常用於單行陣列定義中,例如常用 array 1,2 而不...