美文网首页《C# 小技巧》
在非泛型类中创建泛型方法

在非泛型类中创建泛型方法

作者: oO反骨仔Oo | 来源:发表于2019-01-14 13:15 被阅读0次

    目录:https://www.cnblogs.com/liqingwen/p/10261436.html

    可以创建泛型类,像这样

        class ThingWriter<T>
        {
            public void Write(T thing)
            {
                Console.WriteLine(thing);
            }
        }
    

    这是一个泛型类,它使用类型 T 作为 Write 方法中的方法参数。可以按这种方式去使用:

      var w = new ThingWriter<int>();
    
      w.Write(42);
    

    即使类本身不是泛型,也可以创建泛型方法。

        class ThingWriter
        {
            public void Write<T>(T thing)
            {
                Console.WriteLine(thing);
            }
        }
    

    请注意, ThingWriter 类本身并非泛型。需要这样调用泛型方法:

      var w = new ThingWriter();
    
      w.Write<int>(42);
    

    或者通过利用泛型类型去推断,编译器可以通过传递给 Write 方法的类型 int 来确定(计算出)实际的类型。

      var w = new ThingWriter();
    
      w.Write(42);
    

    章节:CreatingGenericMethodsin Non-GenericClasses
    译书名:《C# 奇淫巧技 -- 编写更优雅的 C#》
    原书名:《C# Tips -- Write Better C#》
    网址:https://leanpub.com/cstips

    相关文章

      网友评论

        本文标题:在非泛型类中创建泛型方法

        本文链接:https://www.haomeiwen.com/subject/ecmddqtx.html