加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# -- 泛型的使用

发布时间:2020-12-15 04:45:24 所属栏目:百科 来源:网络整理
导读:C# -- 泛型的使用 1. 使用泛型 Main( number = str = /spanspan style="color: #008000"gt;///spanspan style="color: #008000"gt;使用泛型方式1,传入参数类型和参数/span MyTestspan style="color: #0000ff"gt;int/spanspan style="color: #000000"gt;(numb

C# -- 泛型的使用

1. 使用泛型

Main( number = str = </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;使用泛型方式1,传入参数类型和参数</span> MyTest<<span style="color: #0000ff"&gt;int</span>><span style="color: #000000"&gt;(number); MyTest</span><<span style="color: #0000ff"&gt;string</span>><span style="color: #000000"&gt;(str); </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;使用泛型方式2,传入参数-->编译器会根据参数推断出参数的类型</span>

<span style="color: #000000"> MyTest(number);
MyTest(str);

        Console.ReadKey();
    }

    </span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;static</span> <span style="color: #0000ff"&gt;void</span> MyTest<T><span style="color: #000000"&gt;(T t)
    {
        Console.WriteLine(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;{0} 的类型是{1}</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,t.ToString(),t.GetType());
    }
}</span></pre>

运行结果:

2. 泛型约束

Main( number = str = </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;MyTest1传入参数类型必须是引用类型,否则会编译时报错</span> MyTest1<<span style="color: #0000ff"&gt;string</span>><span style="color: #000000"&gt;(str); </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;MyTest2传入参数类型必须是值类型,否则会编译时报错</span> MyTest2<<span style="color: #0000ff"&gt;int</span>><span style="color: #000000"&gt;(number); Console.ReadKey(); } </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;限定传入的参数类型是引用类型</span> <span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;static</span> <span style="color: #0000ff"&gt;void</span> MyTest1<T>(T t) <span style="color: #0000ff"&gt;where</span> T:<span style="color: #0000ff"&gt;class</span><span style="color: #000000"&gt; { Console.WriteLine(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;{0} 的类型是{1}</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,t.GetType()); } </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;限定传入的参数类型是值类型</span> <span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;static</span> <span style="color: #0000ff"&gt;void</span> MyTest2<T>(T t) <span style="color: #0000ff"&gt;where</span> T:<span style="color: #0000ff"&gt;struct</span><span style="color: #000000"&gt; { Console.WriteLine(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;{0} 的类型是{1}</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,t.GetType()); } }</span></pre>

运行结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读