c#之泛型
public class Program { public static void Main(string[] args) { Pair<int, string> p = new Pair<int, string>(12,"name"); Console.WriteLine(p.First+","+p.Second); Console.ReadLine(); } } public interface IPair<T1, T2> { T1 First { get; set; } T2 Second { get; set; } } public struct Pair<T1, T2> : IPair<T1, T2> { public Pair(T1 first, T2 second) : this()//结构体的构造参数需要加上这个。 { this.First = first; this.Second = second; } public T1 First { get; set; } public T2 Second { get; set; } }
上述代码就是泛型的一个例子
1.1 元数
元数是指类型参数的数量,对类进行了唯一性区分。每个泛型类型的元数都必须固定。
1.2嵌套泛型类型
避免在嵌套类型中用同名参数隐藏外层类型的类型参数。
如下代码,这时候vs编译器会给出警告,嵌套类型中对T 的任何引用都会引起嵌套的T类型参数。
public class Container<T, U> { /// <summary> /// 嵌套类 /// </summary> /// <typeparam name="U"></typeparam> public class Nested<U> { public void Method(T t, U u) { } } }
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术