国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高阳县| 上虞市| 定西市| 明星| 改则县| 潢川县| 榕江县| 枞阳县| 宁南县| 克拉玛依市| 定安县| 安图县| 稷山县| 保靖县| 临潭县| 东方市| 治多县| 永定县| 蚌埠市| 高陵县| 绥芬河市| 泾阳县| 于都县| 南雄市| 游戏| 建瓯市| 师宗县| 福泉市| 荣成市| 天全县| 兴业县| 贵德县| 康乐县| 泸溪县| 邓州市| 和政县| 刚察县| 内江市| 刚察县| 内江市| 丰城市|