首 页 | 网页模板 | 教程 | 源码下载 | 书籍下载 | 图片素材 | 字体 | JAVA特效 | FLASH源码 | 软件 | 矢量 | 论坛 | 其它 |
设为主页
加入收藏
联系站长
平面设计 | 网页制作 | 程序编写 | 数 据 库 | 媒体动画 | 网络冲浪 | 服务器相关 |
当前在线
广告:P4服务器电信机房6999/年即送产权 | 疾风下载
.NET 2.0 泛型Quiz
2005-11-10 7:15:14  作者:模板天下收集整理  来源:未知 网友评论 0 条 论坛
  

.NET 2.0的泛型,是在何时进行建造(Construct)?编译器在何时知道泛型的类型参数,何时不知道?不妨先来思考一下这几个Quiz:

Quiz 1:写出以下代码的输出

class Program { static void Main(string[] args) { A<int> a = new A<int>(); a.InternalCall(12); } } class A<T> { public void InternalCall(T obj) { Test(obj); } public void Test<U>(U obj) { Console.WriteLine("U"); } public void Test(int obj) { Console.WriteLine("int"); } }

到底哪个重载会被调用呢?仅从类的里面看,似乎只有一个选择;而在调用方看,却存在两个选择……

Quiz 2:写出以下代码的输出

class Program
{ static void Main(string[] args) { A<int> a = new A<int>(); a.Test(12); } } class A<T> { public void Test(T obj) { Console.WriteLine("T"); } public void Test(int obj) { Console.WriteLine("int"); } }

恩……这是个最奇特的例子,当你输入代码时,IDE会告诉你有两个一模一样的重载函数,那么会调用哪一个呢?

Quiz 3:写出以下代码的输出

class Program { static void Main(string[] args) { A<int> a = new A<int>(); a.Test(12); a.Test(12.0); } } class A<T> { public void Test<U>(U obj) { Console.WriteLine("U"); } public void Test(T obj) { Console.WriteLine("T"); } }
当你做出这些题后,你能想到这些特性可以用来编写什么样的程序吗?
共分1页  [1] 
>> 相关文章

关于网站 | 客服中心 | 服务条款 | 友情链接 | 广告联系 | 本站历程 | 网站导航

吉ICP备05000107号