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

一、泛型类:

    /// <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();
}
}

 

 

c#中的自定义泛型类、泛型方法和泛型接口的更多相关文章

  1. 0072 Java中的泛型--泛型是什么--泛型类--泛型方法--擦除--桥方法

    什么是泛型,有什么用? 先运行下面的代码: public class Test { public static void main(String[] args) { Comparable c=new ...

  2. JAVA之旅(二十一)——泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符

    JAVA之旅(二十一)--泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符 不知不觉JAVA之旅已经写到21篇了,不得不感叹当初自己坚持要重学一遍JAVA的信念,中途也算 ...

  3. C#中泛型方法与泛型接口 C#泛型接口 List<IAll> arssr = new List<IAll>(); interface IPerson<T> c# List<接口>小技巧 泛型接口协变逆变的几个问题

    http://blog.csdn.net/aladdinty/article/details/3486532 using System; using System.Collections.Generi ...

  4. java泛型应用实例 - 自定义泛型类,方法

    近 短时间需要使用泛型,就研究了下,发现网上的问关于泛型的文章都是讲原理的, 很少有提到那里用泛型比较合适, 本文就泛型类和泛型方法的使用给出两 个典型应用场景. 例如一个toString的泛型方法, ...

  5. JAVASE(十五) 泛型 :泛型用例、自定义泛型类、通配符

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.泛型在集合中的使用 1.1 在集合中使用泛型之前的例子 ​ 为什么要有泛型(Generic)? 1. ...

  6. UWP中实现自定义标题栏

    UWP中实现自定义标题栏 0x00 起因 在UWP开发中,有时候我们希望实现自定义标题栏,例如在标题栏中加入搜索框.按钮之类的控件.搜了下资料居然在一个日文网站找到了一篇介绍这个主题的文章: http ...

  7. Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数

    10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...

  8. Android XML中引用自定义内部类view的四个why

    今天碰到了在XML中应用以内部类形式定义的自定义view,结果遇到了一些坑.虽然通过看了一些前辈写的文章解决了这个问题,但是我看到的几篇都没有完整说清楚why,于是决定做这个总结. 使用自定义内部类v ...

  9. ASP.NET Core中显示自定义错误页面-增强版

    之前的博文 ASP.NET Core中显示自定义错误页面 中的方法是在项目中硬编码实现的,当有多个项目时,就会造成不同项目之间的重复代码,不可取. 在这篇博文中改用middleware实现,并且放在独 ...

随机推荐

  1. 转载-【深度学习】深入理解Batch Normalization批标准化

      全文转载于郭耀华-[深度学习]深入理解Batch Normalization批标准化:   文章链接Batch Normalization: Accelerating Deep Network T ...

  2. tarjan求强连通分量的思考

    我是按照这里的思路来的.这个博文只是感性理解. 递归树 关于递归树,这篇博文讲的很好,我只是给自己总结一下. 定义vis数组,在dfs连通图时赋予它们不同的含义: vis=0,表示这个点没有被访问. ...

  3. bzoj4889: [Tjoi2017]不勤劳的图书管理员(树套树)

    传送门 据说正解线段树套平衡树 然而网上参考(抄)了一个树状数组套动态开点线段树的 思路比较清楚,看代码应该就明白了 //minamoto #include<iostream> #incl ...

  4. MySQL 5.7 INFORMATION_SCHEMA 详解

    refman mysql 5.7 INFORMATION_SCHEMA提供了对数据库元数据的访问,MySQL服务器信息,如数据库或表的名称,列的数据类型,访问权限等. 有时也把这些信息叫做数据字典或系 ...

  5. django中的ORM与 应用与补充

    目录 django中的ORM与 应用与补充 ORM与数据的对应关系 ORM 常用字段 ORM 其他字段 自定义字段 字段参数 Model Meta参数 常用13中查询(必会) 单表查询的双下划线应用 ...

  6. 在VS2008中使用Qt编程(转)

    http://www.cnblogs.com/JohnShao/archive/2012/07/25/2608561.html     一.安装所需软件            1.   下载安装VS2 ...

  7. require--按需加载js与模块化

    1.html中:  “<script type="text/javascript" src="js/require.js" data-main=" ...

  8. eclipse plugin

    快速查看目录 org.sf.easyexplore_1.0.4.jar mongo DB net.jumperz.app.MMonjaDB_1.0.16.jar jasper report jaspe ...

  9. UML类图学习总结

    1.首先来认识下类图?以及类图的作用 类图(Class diagram)由许多(静态)说明性的模型元素(例如类.包和它们之间的关系,这些元素和它们的内容互相连接)组成.类图可以组织在(并且属于)包中, ...

  10. OAuthLogin2.0

    开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台   Nuget地址:https://www.nuget.org/packages/OAuthLogin ...