C#泛型方法重载(附带实例)
C#中,泛型方法的重载可细分为两种情况,分别是一般类中的泛型方法重载和泛型类中的泛型方法重载。
【实例 1】在一般类 MyTest 内创建泛型方法。
在一般类中重载泛型方法,实例如下。
【实例 2】在一般类中创建泛型方法重载。
C#一般类中的泛型方法重载
C#允许一般类内含有泛型方法,在一般类内创建泛型方法,详情可以参考下列实例。【实例 1】在一般类 MyTest 内创建泛型方法。
MyTest obj = new MyTest();
obj.PrintInfo<int>(50); // 由<int>推断数据类型是int
obj.PrintInfo(60); // 由参数60推断数据类型是int
obj.PrintInfo<string>("Hello C#"); // 由<string>推断数据类型是string
obj.PrintInfo("Going to C# World!"); // 由参数"Going to C# World!"推断数据类型是string
public class MyTest
{
public void PrintInfo<T>(T data)
{
Console.WriteLine(data);
}
}
执行结果为:
50
60
Hello C#
Going to C# World!
在一般类中重载泛型方法,实例如下。
【实例 2】在一般类中创建泛型方法重载。
MyTest obj = new MyTest();
obj.Data("Going to C# World");
obj.Data<string>("王者归来");
obj.Data(50);
obj.Data<int>(100); // 使用Data<T>
public class MyTest
{
public void Data<T>(T t)
{
Console.WriteLine($"使用Data<T>:{t.GetType().Name}:{t}");
}
public void Data(int a)
{
Console.WriteLine($"使用Data:{a.GetType().Name}:{a}");
}
}
执行结果为:
使用Data<T>:String:Going to C# World
使用Data<T>:String:王者归来
使用Data:Int32:50
使用Data<T>:Int32:100
C#泛型类中的泛型方法重载
【实例 3】泛型类中的泛型方法重载。
MyTest<int> xInt = new MyTest<int>();
xInt.Data(10);
xInt.Data("10"); // 使用Data(string)
MyTest<string> xString = new MyTest<string>();
xString.Data("Going to C#");
public class MyTest<T>
{
public void Data(T item)
{
Console.WriteLine($"使用Data T:{item}");
}
public void Data(string item)
{
Console.WriteLine($"使用Data string:{item}");
}
}
执行结果为:
使用Data T:10
使用Data string:10
使用Data string:Going to C#
ICP备案:
公安联网备案: