C#泛型、泛型处理-2
// 必须引用,才能使用 List/Dictionary 泛型集合
using System.Collections.Generic;
class Program
{
// 泛型方法:打印任意类型数据
static void Print
{
Console.WriteLine("值:" + value);
}
static void Main()
{
Print
Print
Print
}
}
作用:一个方法支持 int、string、double 所有类型,不用写多个重载。
——————————————————————————————————————————————————————————————————————————————————
using System;
// 泛型类:存任意一个东西
class Box
{
public T Data { get; set; }
}
class Program
{
static void Main()
{
Box
numBox.Data = 100;
Box
strBox.Data = "泛型真简单";
Console.WriteLine(numBox.Data);
Console.WriteLine(strBox.Data);
}
}
作用:同一个类,既能存数字又能存字符串,类型安全不混乱。
——————————————————————————————————————————————————————————————————————————————————
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// 创建只能存 int 的集合
List
list.Add(10);
list.Add(20);
list.Add(30);
// 遍历输出
foreach (int num in list)
{
Console.WriteLine(num);
}
}
}
作用:最常用的泛型,安全、高效、只能存指定类型,不会乱加东西。
——————————————————————————————————————————————————————————————————————————————————
using System;
namespace GenericDemo
{
public class GenericTool
{
private T _data;
public GenericTool(T data)
{
_data = data;
}
// 方法泛型改名 U,和类的 T 彻底分开!
public U PrintValue(U value)
{
Console.WriteLine("方法接收的值:" + value);
return value;
}
public void GetData()
{
Console.WriteLine("类存储的值:" + _data);
}
}
class Program
{
static void Main(string[] args)
{
// strTool = T = string(永远不变!)
GenericTool
// 现在看得懂了吧!
// T = string(类)
// U = double(方法自己)
strTool.PrintValue
}
}
}

浙公网安备 33010602011771号