程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 使用C#索引器(3)

使用C#索引器(3)

編輯:關於C語言

使用其他值進行索引

C#並不將索引類型限制為整數。例 如,對索引器使用字符串可能是有用的。通過搜索集合內的字符串並返回相應的 值,可以實現此類索引器。由於訪問器可被重載,字符串和整數版本可以共存。

示例2

說明

在此例中,聲明了存儲星期幾的類。聲明了一 個get訪問器,它接受字符串(天名稱),並返回相應的整數。例如,星期日將 返回0,星期一將返回1,等等。

代碼

C#復制代碼

// Using a string as an indexer value
class DayCollection
{
string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
// This method finds the day or returns -1
private int GetDay(string testDay)
{
int i = 0;
foreach (string day in days)
{
if (day == testDay)
{
return i;
}
i++;
}
return -1;
}
// The get Accessor returns an integer for a given string
public int this[string day]
{
get
{
return (GetDay(day));
}
}
}
class Program
{
static void Main(string[] args)
{
DayCollection week = new DayCollection();
System.Console.WriteLine(week["Fri"]);
System.Console.WriteLine(week["Made-up Day"]);
}
}

輸出

5

-1

可靠編程

提高索引器 的安全性和可靠性有兩種主要的方法:

確保結合某一類型的錯誤處理策 略,以處理萬一客戶端代碼傳入無效索引值的情況。在本主題前面的第一個示例 中,TempRecord類提供了Length屬性,使客戶端代碼能夠在將輸入傳遞給索引器 之前對其進行驗證。也可以將錯誤處理代碼放入索引器自身內部。確保為用戶記 錄在索引器的訪問器中引發的任何異常。有關更多信息,請參見異常設計准則。

應當為get和set訪問器的可訪問性設置盡可能多的限制。這一點對set訪問器尤為重要。有關更多信息,請參見非對稱訪問器可訪問性(C#編程指 南)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved