​    泛型的产生其中一个原因就是为了解决原来集合类中元素的装箱和拆箱问题:

一、泛型类:

    /// <summary>
/// 返回前台的消息
/// </summary>
/// <typeparam name="T"></typeparam>
public class YZT_Message<T>
{
private int m_Request_Type = ; // 返回前台的成功错误类型:1:成功(默认) 0:错误
public int Request_Type
{
get { return m_Request_Type; }
set { m_Request_Type = value; }
} private string m_Request_Message = "当前错误"; //返回前台的信息 Request_Type == 0 时,才会取当前错误数据
public string Request_Message
{
get { return m_Request_Message; }
set { m_Request_Message = value; }
} // 回返前台的信息,可能是JSON对象
public T Request_Object { get; set; } // 回返前台的信息,可能是JSON对象集合
public IList<T> Request_List { get; set; }
}

调用的时候:假如T是string类型:

YZT_Message<string> pMessage = new YZT_Message<string>();

try{

pMessage.Request_Object = "OK";

pMessage.Request_Type = 1;

}

catch (Exception err){

pMessage.Request_Type = 0;

pMessage.Request_Message = err.Message;

}

二、泛型方法:

public class Demo
{
//这是一个泛型方法,可以在普通类中
public static void Swap<T>(ref T lhs, ref T rhs)
{
T temp;
temp = lhs;
lhs = rhs;
rhs = temp;
} //调用泛型方法:
public static void TestSwap()
{
int a = ;
int b = ;
Swap<int>(ref a, ref b);//也可以省略类型参数,编译器将推断出该参数。Swap(ref a, ref b);
System.Console.WriteLine(a + " " + b);
}
}

三、泛型接口

public class Demo
{
public interface IFace<T>
{
T SayHi();
void SayHello(T msg);
}
}

实现泛型接口:

方式一:普通类实现泛型接口:

public class InterFaceDemo2 : WebApplication1.InterFaceDemo.IFace<string>
{ public string SayHi()
{
throw new NotImplementedException();
} public void SayHello(string msg)
{
throw new NotImplementedException();
}
}

方式二:泛型类,实现泛型接口,这样更灵活

public class InterFaceDemo<T>:WebApplication1.InterFaceDemo.IFace<T>
{ public T SayHi()
{
throw new NotImplementedException();
} public void SayHello(T msg)
{
throw new NotImplementedException();
}
}

 

 

最新文章

  1. Day2-python基础2
  2. javascript createElement ttf
  3. bat批量去除文件首行和合并到文件
  4. 在 mvc 中使用下拉列表
  5. ALV的报表对用户定义格式的控制(ALV I_SAVE)
  6. 【分享】.Net有哪些大型项目、大型网站的案例?
  7. spring读书笔记----Quartz Trigger JobStore出错解决
  8. 详解C#中System.IO.File类和System.IO.FileInfo类的用法
  9. 使用Java BigDecimal进行精确运算
  10. python:时间处理模块
  11. 在Ubuntu下的Apache上建立新的website,以及enable mono
  12. django1.7 配置demo教程(环境搭建)
  13. 将Model实体类对象作为WebService接口参数(转)
  14. SpringMVC创建HelloWorld程序
  15. video标签
  16. yum仓库管理
  17. 如何强制关闭LODOP或c-lodop已经弹出的预览窗口
  18. 使用chttpfile的一个错误
  19. Luogu4652 CEOI2017 One-Way Streets 树上差分
  20. Utils--前台调用后台接口工具类

热门文章

  1. lightoj1010【规律】
  2. 小a和uim之大逃离(luogu P1373 dp)
  3. SAP中对于获取订单的状态
  4. C 语言实例 - 求两数的最大公约数
  5. K.河北美食
  6. https://www.safaribooksonline.com/home/
  7. Ubuntu 16.04 以太坊开发环境搭建
  8. Lodop套打
  9. 【持续更新】Spring相关
  10. centOS 下开启端口号