摘要:
查看判断两个对象是否是同一个对象要用:object.ReferenceEquals(); 因为“==”默认值是比较两个对象是不是同一个对象。所以有时候两个对象的内容相等,但是比较后还是false。 Object的Equals方法也比较两个变量指向的是否同一个对象;对象如果override 了Equa 阅读全文
摘要:
值类型赋值给Object类型变量的时候,会发生装箱:包装成Object。ValueType不也是继承自Object吗(CLR内部处理); Object类型变量赋值给值类型赋值的时候会发生拆箱,需要做显式转换。 下面几句代码有没有错,解释一下内存是怎么变化的 int i=10; object obj 阅读全文
摘要:
1、 .Net平台下不只有C#语言,还有VB.Net、F#等语言。IL是程序最终编译的可以执行的二进制代码(托管代码),不同的语言最终都编译成标准的IL(中间语言,MSIL);这样C#可以调用VB.Net写的程序集(Assembly,dll、exe)。在.Net平台下:不同语言之间可以互联互通、互相 阅读全文
摘要:
结构体 在平时的开发中很少自己去写结构体,他是一种值类型的数据。对于结构,不像类那样存在继承,一个结构体不能从另一个结构或类继承。但是结构体从基类Object继承。 语法: //struct是定义结构体的关键字 Struct MyStruct { Public string Name{get;set 阅读全文
摘要:
深拷贝、浅拷贝 如果拷贝的时候共享被引用的对象就是浅拷贝,如果被引用的对象也拷贝一份出来就是深拷贝。(深拷贝就是说重新new一个对象,然后把之前的那个对象的属性值在重新赋值给这个用户) using System; using System.Collections; using System.Coll 阅读全文
摘要:
1、密闭类是修饰为sealed的类, sealed不能有子类。一般只有系统中的一些基本类声明为sealed。面试题:是否可以编写一个类继承自String类? 答:不能,因为string被声明为了sealed了 2、静态类:声明为static的类,不能实例化,只能定义static成员。通常用他定义扩展 阅读全文
摘要:
没有名字 ,索引器的内部本质 (ILSpy的IL模式下看)类型 this[参数]{get;set;} 可以是只读或者只写(在get或者set前加上private) 字符串是只读索引,因此不能对字符串中的某个字符进行从新赋值,即只能char ch = s[5];不能s[5]=‘a’。 开发中自己写的机 阅读全文
摘要:
这篇文章主要讲解C#中的泛型,泛型在C#中有很重要的地位,尤其是在搭建项目框架的时候。 一、什么是泛型 泛型是C#2.0推出的新语法,不是语法糖,而是2.0由框架升级提供的功能。 我们在编程程序时,经常会遇到功能非常相似的模块,只是它们处理的数据不一样。但我们没有办法,只能分别写多个方法来处理不同的 阅读全文