今天主要在学习了泛型和程序集以及一些细碎的知识的运用。下面我就把今天所学的总结一下。
理论:
泛型:
* 英文名字是Generic,可以让多个类型共享一组代码,泛型允许我们声明类型参数化,可以用不同的类型进行实例化,也就是可以用类型占位符,创建具体类型值真实的概念。
* C#中提供了五种泛型,分别是:类、结构、接口、委托和方法。今天就详细学习一下泛型委托和泛型接口。
* 泛型的约束不能是数值类型。
* 我们在定义方法时习惯用方法名为Push来表示往数组中追加一个数;同样的,用方法名为Pop来表示从数组中删除一个数,往往是从数组的最后一个开始删除。
枚举器
* 数组之所以能够被Foreach进行循环是因为数组存在着一个枚举器(enumerator)依次返回请求数组中按照顺序的每一个元素。
* 一个类如果实现IEnumerable接口,那么他就可以实现接口中的GetEnumerator方法,具有了这个方法的类叫做可枚举类,数组就是可枚举类型。
程序集
* 扩展名为.exe和.dll的均称为程序集。
GAC全局程序集缓存
* 安装有公共语言运行时的每台计算机都具有称为全局程序集缓存的计算机范围内的代码缓存。
* 全局程序集缓存中存储了专门指定给由计算机中若干应用程序共享的程序集。 应当仅在需要时才将程序集安装到全局程序集缓存中以进行共享。
* 一般原则是:程序集依赖项保持专用,并在应用程序目录中定位程序集,除非明确要求共享程序集。 另外,不必为了使 COM 互操作或非托管代码可以访问程序集而将程序集安装到全局程序集缓存。
匿名类
没有具体类型,所以用var来接收;只能在方法体里使用
例: var person=new{name="张三",age=18}
扩展方法 必须是静态类 必须带上访问休止符 这里是为object添加扩展方法,所以这里写object.
例:public static Myob(this object o,string content)
{
.......
}
实操
泛型委托的运用
将小写的字符串转换成大写的字符串,用泛型委托实现
先定义一个泛型委托Func
定义一个静态类
在Main函数里调用
输出结果
计算两个数的和,用泛型委托实现
同样的,先定义一个泛型委托,这里的tr是用来接收的字符串
泛型接口的运用
输出不同类型的变量值(用泛型接口实现)
定义一个接口IMyfc
定义类Simple
在Main函数里调用
如果想要调用其他项目里的类,可以引用过来。
扩展方法的运用
计算三个数的平均值(用扩展方法实现)
定义两个类
输出结果:
好了,今天就先学到这里了,接下来就要学习在windows form里编程了。加油!