1. 程式人生 > >c#裏面的索引器註意

c#裏面的索引器註意

mil span 引號 [0 構造方法 test ack 數組 his

1、特此說明,下面代碼是從完整部分復制了部分,未必能直接拷貝執行。

2、索引器裏註意 1)如果沒有設置數組保存,不能連續訪問per2[0],per[1],因為裏面的比如 Name是被替換的。 2)我們創建數組保存,需要 創建空間,我們可以

string[] ArrName=new string[10] ; 也可以在這裏分配空間
也可以寫個構造方法,動態分配空間,如下面代碼。

3、索引器裏另外靈活運用例子,將索引號不同,給對象不同字段賦值。

public string this [int index]
            {
                set
                {
                    
if (index == 0) { Name = "test1"; } else if (index == 1) Name = "testOther"; else Name = value; } get { if (index == 0)
return Name; else if (index == 1) return Name + 1; else return Name; }調用 //索引器,不能一次性訪問per2【0】,per2【1】,除非把 return保存到數組裏面 person per2 = new person(); per2[
0] = "11"; Console.WriteLine(per2[0]); per2[1] = "22"; Console.WriteLine(per2[1]); per2[2] = "33"; Console.WriteLine(per2[2]); Console.WriteLine(per2[0]+" "+per2[1]+" "+per2[2]+" "+per2[3]);

static void Main(string[] args)
{

person per2 = new person();
per2[0] = "11";
Console.WriteLine(per2[0]);
per2[1] = "22";
Console.WriteLine(per2[1]);
per2[2] = "33";
Console.WriteLine(per2[2]);
Console.WriteLine(per2[0]+" "+per2[1]+" "+per2[2]+" "+per2[3]);

 

Console.ReadKey();
}



public class person
{
int age;
string name;
// string[] ArrName=new string[10] ; 也可以在這裏分配空間
string[] ArrName;
private bool sex;
public person(int i)//構造方法,為ArrName分配空間
{
ArrName = new string[i];
}
public string this [int index]
{
set
{
if (index == 0)
{ ArrName[0] = "test1"; }
else if (index == 1)
ArrName[1] = "testOther";
else
ArrName[index] = value;
}
get
{
if (index == 0)
return ArrName[index];
else if (index == 1)
return ArrName[index];
else
return ArrName[index] +100;

}
}

  

c#裏面的索引器註意