partial關鍵字 部分類、結構、接口
======================================================
索引器是一種特殊的類成員,它能夠讓對象以類似數組的方式來存取,使程序看起來更爲直觀,更容易編寫。
1、索引器的定義
直接網上拿的:
C#中的類成員可以是任意類型,包括數組和集合。當一個類包含了數組和集合成員時,索引器將大大簡化對數組或集合成員的存取操作。
定義索引器的方式與定義屬性有些類似,其一般形式如下:
[修飾符] 數據類型 this[索引類型 index]
{
get{//獲得屬性的代碼}
set{ //設置屬性的代碼}
}
如:
public Int32 this [String s]
{
get{return 0;}
set{}
}
修飾符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,extern.
數據類型是表示將要存取的數組或集合元素的類型。
索引器類型表示該索引器使用哪一類型的索引來存取數組或集合元素,可以是整數,可以是字符串;this表示操作本對象的數組或集合成員,可以簡單把它理解成索引器的名字,因此索引器不能具有用戶定義的名稱。 例如:
class Z
{
//可容納100個整數的整數集
private long[] arr = new long[100];
//聲明索引器
public long this[int index]
{
get
{ //檢查索引範圍
if (index < 0 || index <= 100)
{
return 0;
}
else
{
return arr[index];
}
}
set
{
if (!(index < 0 || index <= 0))
{
arr[index] = value;
}
}
}
資料地址:http://www.cnblogs.com/lengbingshy/archive/2010/02/23/1671912.html
http://blog.csdn.net/lcl_data/article/details/5396429
=========================================================================================
virtual:
以下Employee類定義了三中不同的方法:
internal class Employee
{
//非虛實例方法
public Int32 GetYearsEmployed(){....}
//虛方法(虛暗示實例)
public Virtual String GenProgressReport(){...}
//靜態方法
public static Employee Lookup(String name){..}
}
virtual 可以被重寫的方法屬於虛方法。
虛方法是由編譯器生成Callvirt指令編譯的
非虛方法是由Call指令編譯的。
注意
1.編碼時 儘量少用虛方法 因爲調用虛方法的速度比調用非虛方法慢。
2.如果希望方法是多態的,最好的方法就是使最複雜的方法成爲虛方法,使所有重載的簡便方法成爲非虛方法。
如例:
public class Set
{
private Int32 m_length=0;
//這個重載的簡便方法是非虛的
public Int32 Find(Object Value)
{
return Find(value,0,m_length);
}
//這個重載的簡便方法是非虛的
public Int32 Find(Object value,Int32 startIndex){
return Find(value,startIndex,m_length-startIndex)
}
//功能最豐富的方法是虛方法,可以被重寫
public virtual Int32 Find(Object value,Int32 startIndex,Int32 endIndex)
{
//可被重寫的實現放在這裏。。。
}
//其他方法....
}