📦【泛型就像万能收纳盒】 想象你有个魔法盒子,今天装薯片,明天装奶茶,后天装switch卡带,但永远不需要换盒子!泛型就是这个魔法——用这个符号就能让一个类变成"百变星君"!
举个栗子🌰:
public class 我的百宝箱<T> {
public void 装东西(T 随便什么) { }
}
// 今天装整数
var 钱箱 = new 我的百宝箱<int>();
钱箱.装东西(666);
// 明天装字符串
var 情书箱 = new 我的百宝箱<string>();
情书箱.装东西("今晚月色真美");
🚫【告别"薛定谔的类型"】 以前用ArrayList就像玩俄罗斯轮盘赌——你永远不知道取出来的是不是你想要的东西:
ArrayList 危险列表 = new ArrayList();
危险列表.Add(123);
危险列表.Add("Surprise!"); // 惊喜变惊吓
int 数字 = (int)危险列表[1]; // BOOM!运行时爆炸💥
而泛型集合就像智能安检门:
List<int> 安全列表 = new List<int>();
安全列表.Add(123);
// 安全列表.Add("Surprise!"); // 直接编译报错,把bug扼杀在摇篮里
⚡【速度与激情】 泛型不用像Object那样"装箱拆箱"(就像把东西装进快递盒又拆开),性能直接起飞🛫: • 普通版:int → 装箱成object → 拆箱回int(累不累啊) • 泛型版:int就是int(丝般顺滑)
☕【举个咖啡机的例子】 想象泛型是个万能咖啡机:
public class 咖啡机<T咖啡豆> where T咖啡豆 : 咖啡豆基类
{
public 咖啡 制作(T咖啡豆 豆子) { ... }
}
// 用法:
var 意式机 = new 咖啡机<阿拉比卡>();
var 手冲壶 = new 咖啡机<耶加雪菲>();
这样既保证只能放咖啡豆(类型安全),又能适配各种咖啡豆(代码复用)!
💡 重点总结:
- 泛型是"写一次,随便用"的代码模板
- 编译时确定类型,安全又高效
- List比ArrayList香一百倍
- 不仅能做集合,还能玩出各种花样(接口/方法/委托...)
最后友情提示:看到System.Collections.Generic里的宝贝们(比如List/Dictionary)就赶紧用起来,别再用老古董ArrayList啦!🚀