zoukankan      html  css  js  c++  java
  • .net之泛型

     //灵活使用别名使代码更加精简。
        using ZClass2 = ZClass<Xparameter<string>, string>;
    
        class XClass {
            //泛型方法
            public static void MethodA<z>(z param)
            {
                Console.Write(param.GetType().ToString());
            }
        }
    
        class YClass<T> {
            public T MethodA() {
                T t=default(T);
                return t;
            }
        }
    
        class Xparameter<p>
        {
            public static void MethdB(p data) { }
        }
        class ZClass<z,v>{
        public static void MethdB(z key,v data){}
        }
        class Program
        {
            //泛型:generic 具有参数的类型,参数是捡来类型的占用符,一般类型包括类、借口、和结构。 
            static void Main(string[] args)
            {
                //Xparameter<string>代表一个类。
                //ZClass<Xparameter<string>, string> z = new ZClass<Xparameter<string>, string>();
                ZClass2 z = new ZClass2();
            }
        }

    .net之约束: 

    1,派生约束:

        class Program
        {
    
            static void Main(string[] args)
            {
                XClass x = new XClass();
                YClass y = new YClass();
                ZClassz<YClass, XClass> z = new ZClassz<YClass, XClass>();
                //error!
                //ZClassz<XClass, YClass> z = new ZClassz<XClass, YClass>();
            }
        }
        public class XClass{
        }
        public class YClass{
        }
        public class ZClassz<y,v>where v:XClass where  y:YClass{
        }

      (例)节点约束:

    2,接口约束:

    3,值类型约束:

    4,引用类型约束:

  • 相关阅读:
    group having条件找max无记录问题
    Apache Http Server
    Google产品
    AES加密报错Illegal key size
    内网调试微信开发
    试用VSCode
    React的Transaction浅析
    一个webpack,react,less,es6的DEMO
    20151128
    React生命周期浅析
  • 原文地址:https://www.cnblogs.com/canbefree/p/3498747.html
Copyright © 2011-2022 走看看