国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#泛型類型參數的使用

2023-05-17 11:41:53
字體:
來源:轉載
供稿:網友

在泛型類型或方法定義中,類型參數是客戶端在實例化泛型類型的變量時指定的特定類型的占位符。泛型類(如泛型介紹(C# 編程指南)中列出的 GenericList<T>)不可以像這樣使用,因為它實際上并不是一個類型,而更像是一個類型的藍圖。若要使用 GenericList<T>,客戶端代碼必須通過指定尖括號中的類型參數來聲明和實例化構造類型。此特定類的類型參數可以是編譯器識別的任何類型。可以創建任意數目的構造類型實例,每個實例使用不同的類型參數,如下所示:

GenericList<float> list1 = new GenericList<float>();
GenericList<ExampleClass> list2 = new GenericList<ExampleClass>();
GenericList<ExampleStruct> list3 = new GenericList<ExampleStruct>();

在每個 GenericList 實例中,類中出現的每個 T 都會在運行時替換為相應的類型參數。通過這種替換方式,我們使用一個類定義創建了三個獨立的類型安全的有效對象。 類型參數命名準則務必使用描述性名稱命名泛型類型參數,除非單個字母名稱完全可以讓人了解它表示的含義,而描述性名稱不會有更多的意義。

public interface ISessionChannel<TSession> { /*...*/ }
public delegate TOutput Converter<TInput, TOutput>(TInput from);
public class List<T> { /*...*/ }

考慮使用 T 作為具有單個字母類型參數的類型的類型參數名。

public int IComparer<T>() { return 0; }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T : struct { /*...*/ }

務必將“T”作為描述性類型參數名的前綴。

public interface ISessionChannel<TSession> { TSession Session { get; } }

考慮在參數名中指示對此類型參數的約束。例如,可以將帶有 ISession約束的參數命名為TSession

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭觉县| 宁远县| 浦东新区| 根河市| 濮阳市| 天水市| 和田县| 西盟| 平阴县| 诏安县| 洪江市| 根河市| 囊谦县| 密云县| 共和县| 涿鹿县| 通渭县| 揭西县| 建宁县| 玛曲县| 太康县| 嘉义市| 彰武县| 湘潭市| 定结县| 绥芬河市| 广河县| 阆中市| 泽库县| 克拉玛依市| 沧州市| 翼城县| 肇源县| 乌鲁木齐市| 车致| 若尔盖县| 锦州市| 河南省| 兴业县| 乃东县| 吉木萨尔县|