
C#基础知识点
menghuaC
这个作者很懒,什么都没留下…
展开
-
CTS 、CLS、CLR的理解
CTS 、CLS、CLR的理解 IL .NET平台的中间语言 可以互通互联,互相调用。 CTS 通用数据类型 各个语言编译器把自己语言的类型翻译成CTS中的类型。Int是C#中的类型,Int32是CTS的类型。 CLS 不同的语言语法也是不同的,.NET平台规定了通用语言规范CLS可以编译为通用语法,c#可以转为vb等。 CLR IL代码石油公共语言运行时(CLR)驱动运行的,CLR提供了垃圾回...原创 2019-05-06 21:54:03 · 416 阅读 · 0 评论 -
object.ReferenceEquals、字符串缓冲池、ref和out
相等 object.ReferenceEquals(P1,P2) Equals方法的默认实现是比较两个变量是否是同一个对象。 字符串由于override了Equals方法,内部进行内容的比较,所以对于字符串来讲**==**就是比较内容。 字符串缓冲池 字符串不可变 字符串是引用类型,每次都创建的话比较浪费内存,所以 CLR作了暂存池,在一些情况下,对于字符串对象进行了重用 ref和out ref ...原创 2019-05-06 22:19:45 · 256 阅读 · 0 评论 -
委托
委托的定义 delegate声明的语法:delegate int MyDel(int i,string s); MyDel是一个数据类型 可以声明一个变量指向和他类型相容的方法 public delagete void MyDel(int n); static void M1(int a) { Console.writeLine(a) } MyDel d1=new MyDel(M1);...原创 2019-05-14 21:40:41 · 199 阅读 · 0 评论 -
火星通行证
原创 2019-05-24 22:24:06 · 932 阅读 · 0 评论 -
委托-匿名方法-lambda表达式
使用Delegate的时候很多时候没必要使用一个普通的方法,因为这个方法只有这个Delegate会用,并且只用一次,这时候使用匿名方法最合适。 匿名方法就是没有名字的方法。 MyDelegate p = delegate(int s) { s = 10; }; 在IL中编译器是给匿名方法生成了名字的 Action<int> a1 = delegate(int i) { ...原创 2019-05-20 22:11:35 · 369 阅读 · 0 评论 -
委托的组合
委托的组合 委托是可以相加的,可以形成一个新的委托对象, 调用这个新的委托对象的时候,会按顺序把组合的委托依次执行; MyDel zh = new MyDel(F1) + new MyDel(F1) + new MyDel(F1); class Program { static void Main(string[] args) { ...原创 2019-05-23 22:08:38 · 239 阅读 · 0 评论 -
事件
事件 class Program { static void Main(string[] args) { Person p1 = new Person(); p1.BenMingNian += BMN;//p1.BenMingNian = p1.BenMingNian+ BMN; ...原创 2019-05-23 22:15:58 · 196 阅读 · 0 评论 -
反射和Attribute
反射 简介 .Net中的类都被编译成IL,反射就可以在运行时获得类的信息(有哪些方法、字段、构造函数、父类是什么等等),还可以动态创建对象、调用成员。 每个类对应一个Type对象,每个方法对应一个MethodInfo对象,每个属性对应一个PropertyInfo……。这些就是类、方法、属性的“元数据”(meta data)。对象和这个类的对象没有直接关系。这些“元数据对象”和成员有关,和对象无关,...原创 2019-06-23 20:58:41 · 311 阅读 · 0 评论 -
正则、序列化、XML
正则表达式 正则表达式是对字符串进行匹配的语法,像name like '%张%'一样,定义了一些特殊的“元字符”,用来判断一个字符串是否满足某个规则。正则表达式非常深,编译器都是基于正则表达式,掌握基本使用即可。 基本元字符 *.表示除了\n以外的任意的单个字符 [0-9]表示的是0到9之间任何一个整数数字;[a-z]任意一个小写字母,[A-Z]任意一个大写字母 \d数字,\D非数字,\s空白,\...原创 2019-06-23 21:13:14 · 337 阅读 · 0 评论