CLR、泛型、委托简介及简单使用
来源:互联网 发布:java中的注释 编辑:程序博客网 时间:2024/06/05 14:23
CLR
CLR是简写,全称是Common Language Runtime
是公共语言运行时 也叫做公共语言运行库
它和java的虚拟机一样,也是一个运行时环境,负责资源管理(内存分配,安全管理和垃圾收集等),并保证应用和底层操作系统之间必要的分离。
CLR监视各种各种的常见编程错误,包括数据元组越界访问、访问未分配的内存空间等这些
这种监视是有代价的,以牺牲性能为代价,微软公开承认的是,大概降低了10%的性能。但是会带来的好处是程序运行的稳定性以及可用性。这一点一直存在争议。
泛型
为什么要用泛型?
假如,我们有一个类。类里有个参数是string类型的。
假如值有时候是汉字,有时候是数字。
有时候呢,我们需要把string类型的数字转换成int型的。可能很多人觉得就是只需要一个简单的Convert.ToInt32(“123”);就能解决
但是其中涉及很多操作。比如:内部实现中,需要先把这个字符串类型“装箱”。把他转换成object类型 这个时候性能开销很大,而我们做商业性项目的时候,性能是一个很要命的东西。你的产品慢,客户就不用了。项目就黄了。所以说性能很重要,这是第一方面。当然有人说了,你建两个类不就OK了吗?一个放string,一个放int
那么扩展一下,在一个很大的项目里,有非常多的类。这些类中有一些操作是通用的。我想要代码不写那么多,能够重用代码。
怎么办?
就需要泛型了。下面是理论,网上搜到的。
泛型:泛型是通过参数化类型来实现在同一份代码上操作多种数据类型。
这个T就是泛型。
这就定义了一个泛型类
一个public 变量 一个public方法,返回一个值的方法
这段代码 实例化了两次那个泛型类。
第一次, 传了一个int参数。 第二次,我传了一个string类型参数。
以下是输出结果
这样,我用了一个类,然后只用同一个一个方法,就可以实现多种功能。
以上就是泛型。可以大大提高代码重用率、提高性能的办法。
委托
委托呢,就是把函数当做参数来用
我们讲一个例子
中国人问好的方式是:美女,你好;
美国人问好的方式是:Girl,hello;
日本人问好的方式是:小沢マリア,こんにちは
那么我们用代码怎么实现呢
我们用一个函数的话
void function(string name)
{
Console.WriteLine(name+",你好");
}
这个时候问题来了 我不知道你是哪国人啊
打招呼怎么知道你能不能听懂
这时候就用到了委托
用委托有三步
第一步
定义一个委托
定义委托用的关键字是delegate
不需要方法体,只需要把参数的类型和个数写进去就OK
第二步:写自己的需要用的函数
static void show1(string name, int age)
{
Console.WriteLine(name + "今年刚刚" + age + "岁");
}
需要注意的是,你自己写的函数,参数的类型、个数,必须保证和定义的委托一样
第三步
定义一个类,存储人的信息
三个变量一个方法
OK,那下面我们用一下委托。需要给这个委托附一个函数,就是刚才的show1
给委托赋值很简单,跟变量一样
赋一个函数,然后传参
一个委托可以赋多个函数,可以显示不同的东西。
- CLR、泛型、委托简介及简单使用
- FreeMarker简介及简单使用
- awk简介及简单使用
- nginx简介及简单使用
- jsoup 简介及简单使用
- gtest简介及简单使用
- FFMPEG简介及简单使用
- CLR简介
- 简单的委托使用
- C#委托简单使用
- C#委托简单使用
- CLR via C# 委托链
- MFC,ATL,CLR简介
- MFC 、ATL、 CLR简介
- Unity 学习笔记(1) — Unity简介及简单使用
- gdb简介及简单使用(转自ibm)
- XML解析简介及Xerces-C++简单使用举例
- XML解析简介及Xerces-C++简单使用举例
- spring事务传播特性和事务隔离级别
- IT修炼道路-贵在坚持
- Linux getpw、getpwend、setpwent和endpwent函数
- 在 CentOS 6.4上安装rabbitmq
- Hadoop2.4.1集群安装
- CLR、泛型、委托简介及简单使用
- Android实现计时以及倒计时的几种方法
- java BigInteger
- recyclerview item动画
- C语言 求1000以内的回文素数
- Hibernate级联查询(多对一)
- 好文章集合
- JavaMail简单收发邮件
- C++函数重载