第一节泛型

.Net Framework1.0  c# 1.0 版本

打印不同的类型参数,需要些多个方法

/// <summary>
/// 打印一个int值
/// </summary>
/// <param name="iParameter"></param>
public static void ShowInt(int iParameter)
{
Console.WriteLine("This is {0},parameter={1},type={2}",
typeof(CommonMethod).Name, iParameter.GetType().Name, iParameter);
}

/// <summary>
/// 打印个string值
/// </summary>
/// <param name="sParameter"></param>
public static void ShowString(string sParameter)
{
Console.WriteLine("This is {0},parameter={1},type={2}",
typeof(CommonMethod).Name, sParameter.GetType().Name, sParameter);
}

/// <summary>
/// 打印个DateTime值
/// </summary>
/// <param name="oParameter"></param>
public static void ShowDateTime(DateTime dtParameter)
{
Console.WriteLine("This is {0},parameter={1},type={2}",
typeof(CommonMethod).Name, dtParameter.GetType().Name, dtParameter);
}

可以通过Object父类继承的方式来优化代码


/// <summary>
/// 打印个object值
/// 1 object类型是一切类型的父类
/// 2 通过继承,子类拥有父类的一切属性和行为;任何父类出现的地方,都可以用子类来代替
///
/// .Net Framework1.0 1.1
/// 亚当 任何一个夏娃,都可以
///
/// object引用类型 加入传个值类型int 会有装箱拆箱 性能损失
/// 类型不安全
/// </summary>
/// <param name="oParameter"></param>
public static void ShowObject(object oParameter)
{
Console.WriteLine("This is {0},parameter={1},type={2}",
typeof(CommonMethod), oParameter.GetType().Name, oParameter);

//Console.WriteLine($"{((People)oParameter).Id}_{((People)oParameter).Name}");

}

/// <summary>
/// 2.0推出的新语法
/// 泛型方法解决用一个方法,满足不同参数类型;做相同的事儿
/// 没有写死参数类型,调用的时候才指定的类型
/// 单身狗:小西瓜
/// 章子怡 范冰冰 凤姐
/// 延迟声明:把参数类型的声明推迟到调用
///
/// 推迟一切可以推迟的~~ 延迟思想
///
///
/// 不是语法糖,而是2.0由框架升级提供的功能
/// 需要编译器支持+JIT支持
/// </summary>
/// <typeparam name="T">T/S 不要用关键字 也不要跟别的类型冲突 </typeparam>
/// <param name="tParameter"></param>
public static void Show<T>(T tParameter)
{
Console.WriteLine("This is {0},parameter={1},type={2}",
typeof(GenericMethod), tParameter.GetType().Name, tParameter.ToString());
}


public static void ShowObject(object oParameter)
{
Console.WriteLine("This is {0},parameter={1},type={2}",
typeof(GenericMethod), oParameter.GetType().Name, oParameter);
}

原文地址:https://www.cnblogs.com/yoyo-524/p/9506079.html