由于长时间在代码中不使用泛型类,所以对泛型类的概念理解不是很深,最近在优化代码的时候遇到了问题,发现用泛型类非常好解决,所以自己又重新写了个列子加深理解。

  泛型:主要解决的问题是当一个类中的逻辑被多个地方调用,但是传入的参数类型不同,此时使用泛型就能够解决复制方法的问题,让我们的代码逼格更高。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 
 8 namespace Generic
 9 {
10     public class Program
11     {
12         static void Main(string[] args)
13         {
14             Console.WriteLine("------此示例是演示泛型的使用--------");
15             var a = new PersonA();
16             a.name = "张三";
17             var client = new Client<PersonA, PersonA>(a);
18             client.say();
19             Console.WriteLine("----------------");
20             client.run();
21             Console.WriteLine("----------------");
22             var b = new Dog();
23             b.name = "小黑";
24             var dog = new Client<Dog, Dog>(b);
25             dog.say();
26             Console.WriteLine("----------------");
27             dog.run();
28             Console.ReadLine();
29         }
30     }
31 
32     public class Dog : Person, IPerson
33     {
34 
35         public void Run()
36         {
37             Console.WriteLine(string.Format("{0}正在跑步...", this.name));
38         }
39 
40         public void Say()
41         {
42             Console.WriteLine(string.Format("{0}正在叫...", this.name));
43         }
44     }
45 
46     public class Person
47     {
48         public string name { get; set; }
49         public int age { get; set; }
50 
51     }
52 
53     public class PersonA : Person, IPerson
54     {
55 
56         public void Run()
57         {
58             Console.WriteLine(string.Format("{0}正在跑步...", this.name));
59         }
60 
61         public void Say()
62         {
63             Console.WriteLine(string.Format("{0}正在说话...", this.name));
64         }
65     }
66 
67     public interface IPerson
68     {
69         void Run();
70         void Say();
71     }
72 
73     public class Client<T, V>
74         where T : Person, IPerson
75     {
76         public Client(T t)
77         {
78             this.current = t;
79         }
80         public T current { get; set; }
81 
82         public void say()
83         {
84             current.Say();
85         }
86 
87         public void run()
88         {
89             current.Run();
90         }
91     }
92 
93 }

 

posted @ 2017-07-05 11:12 彭满意 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 之前一直在使用github,也在上面分享了不少的项目和Demo,每次创建新项目的时候,使用的都是默认的README.md文件,也不曾对这个文件有过什么了解。但是在看到别人写的项目的README.md里面竟然有 阅读全文
posted @ 2017-05-03 17:40 彭满意 阅读(18620) 评论(1) 推荐(4) 编辑
摘要: 辅助类 使用方法 阅读全文
posted @ 2017-05-03 16:15 彭满意 阅读(319) 评论(0) 推荐(0) 编辑
摘要: C# 操作office需要相应的权限,设置步骤如下: 运行-》dcomcnfg.exe-》组件服务-》计算机-》我的电脑-》DCOM配置-》Microsoft office.(word/excel/....)-》右键属性 安全:设置启动和激活权限为everyone、访问权限为everyone 标识选 阅读全文
posted @ 2016-06-29 15:12 彭满意 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 1 2 3 4 5 6 ¥7699/人 7 ¥7399/人... 阅读全文
posted @ 2015-08-20 16:35 彭满意 阅读(621) 评论(0) 推荐(0) 编辑
摘要: ext.js动态弹窗的时候 窗口的store也是临时创建的,为了能够让store与弹窗同时销毁,必须在create的时候加一个属性:autoDestroy:trueExt.create('Tour.store.ticket.Ticket',{autoDestroy:true}); 阅读全文
posted @ 2014-11-19 10:17 彭满意 阅读(711) 评论(0) 推荐(0) 编辑
摘要: ext.js中,如果动态像页面添加元素,导致性能低,可以这样做:Ext.suspendLayouts();//这里添加元素Ext.resumeLayouts(true);这样只用layout一次,效率会高很多,尤其是添加的元素很多的时候。 阅读全文
posted @ 2014-11-11 19:26 彭满意 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 今天学习Ext.js 4.2版本的Tree组件,发现一个问题,就是model里面不能写类型,要不然就不发送请求,而且text是必须的字段,区分大小写。 阅读全文
posted @ 2014-04-15 16:27 彭满意 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 你是一个网页设计师吗?如果是的,那么你也是一个用户界面设计师,在不久的将来,这个角色将变得更加重要。虽然现在的网页有简单用户界面,没有了复杂的导航栏和表格,不过,新技术的崛起和标准将创建一个更动态和需求定制的体验。这也预示着更多的用户界面设计工作,那么,接下来,我们看看,作为设计师的你,应该要记住些什么?法则一:清晰法则用户会避开没有明确意义的界面元素你使用Gmail吗?在最新一次更新前,我在使用。Gmail顶部有非常清晰的文本导航页面——Calendar, Drive, Sheets以及其他谷歌服务按钮。不过,google想简化他们,把他们换成了抽象图标。结果呢?很多用户不再使用这些图标按钮 阅读全文
posted @ 2014-03-19 16:09 彭满意 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 当我们根据《软件.开发流程》开发一个软件时,会牵扯到一系列文档的作成;这些文档的作用是什么?如何写软件.开发文档?这些开发文档包含哪几种?有哪些内容呢?在这我就和大家一起讨论一下:第一、在软件还没有正式开发时所需要的是用户需求分析文档什么是用户需求分析文档呢?也就是在和客户进行沟通时,把用户所要求的信息记录下来,根据用户的要求进行需求分析,规划出我们要开发的软件所要实现哪些功能。第二、做过用户需求分析后所需要的是软件.开发概要设计文档概要设计:顾名思义,就是对我们所要开发的软件进行一个整体的概括,把这个软件所包含的功能模块作一个设计,以后我们在开发的时候就有目标,有方向了。第三、根据我们的概要 阅读全文
posted @ 2014-03-19 11:29 彭满意 阅读(3134) 评论(1) 推荐(0) 编辑
点击右上角即可分享
微信分享提示