.NET知识点整理

更新时间:2023-10-18 21:22:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

需要整理的知识点有:.NET、SQL、JS、CSS、AJAX

----------------------------------------------------.NET框架基础----------------------------------------------- 什么是CLR? 它包括哪2个部分?

通用语言运行库。包含.NET程序的引擎和符合CLI的类库。

什么是.NET框架? 就是CLR。

什么是CLI?

通用语言基础结构,是一份语言和数据格式的规范。

什么是CTS?

通用类型系统,定义了能够在CLR上运行的语言规范。

什么是CLS?

通用语言规范,定义了所有.NET程序需要符合的最小规范集。

.NET程序开发所需的最基本环境?

一个文字编辑器和针对编码语言的编译器。

运行.NET程序需要什么? .NET Framework组件。

什么是程序集、应用程序域? 程序集:模块与资源文件的集合。 应用程序域:类似于OS的进程,提供代码运行范围、错误隔离和安全设置隔离的逻辑单元,其创建和开销较进程小。

.NET的运行机制是什么? (1)编译C#代码

(2)把代码编译成中间语言,并包装成装配件 (3)通过JIT将装配件编译成机器码

什么是程序集强签名?它有哪四个元素来唯一区别。 是一个带有公钥和数字签名的程序集。

四个元素是:文件名、版本号、语言文化和公钥。

-------------------------------------------------C# .NET语法基础--------------------------------------------- 什么是虚方法?

子类可以用override关键字来覆盖父类方法,实现该方法的另一种功能实现。

new关键字的作用?

显示隐藏从父类继承的成员,目的是将一个方法替换成另一个方法。

如何使得一个类不被继承? 用sealed关键字修饰此类

什么是装箱和拆箱?装箱的作用?

装箱就是将值类型转换为引用类型Object,使得值类型可以存储在垃圾回收堆中 拆箱就是将引用类型转换为值类型

常用的值类型有哪些?

结构 枚举 整型 浮点型 布尔型

关键字ref的作用? 无

泛型ArrayList的好处是什么?(不全)

·定义了针对某个类型的容器类ArrayList的泛型集合,就能避免数据进出容器引发的大规模的装箱和拆箱操作,从而提高系统运行性能。

.net中所有内建类型的基类是什么?此基类中有哪些方法?其中哪些是虚方法?

System.Object 其主要方法有Equals() ToString() GetHashCode(),前两个是虚方法,需要被重写。

所有值类型的基类是什么?

System.ValueType,但也是继承自System.Object

值类型和引用类型的区别?有3点 1、内存分配上

值类型在堆栈上分配内存空间,引用类型在堆上分配内存空间。 2、赋值时的区别 对于值类型,变量直接获得值类型的数据副本,对于引用类型,变量获得的是其对象的引用。 3、类型比较

对于值类型,直接内容比较,对于引用类型,是引用比较。

C#中是否有全局变量

没有传统意义的全局变量,c#程序中任何对象数据必须属于某个类型,但是通过公共静态变量可以实现全局变量的功能。

结构和类的区别是什么,结构适用于那些场合?

结构是值类型,不具备继承特性,不能定义虚方法和抽象方法,不能有无参构造函数,不能为成员变量设初值。

当一个类型仅仅是原始数据集合且不需要复杂操作时,定义为结构,因为结构作为值类型,对象内存分配和回收效率相对较高。

什么是类型的初始化器?Q

类型的初始化器是指具有和类型相同名字、无参数无返回的一个static方法。

C#中方法的参数可以有哪几种传递方式?Q

有三个关键字可以修饰方法的参数:ref、out、params。

ref和out是引用传递,区别是ref要求参数传递前必须初始化,而out则不需要; params实现了参数数目可变的方法,可以直接传入变量集合而无需声明数组。

C#中string和String以及object和Object有什么区别?

是同一个类型的两个名字,没有太多区别,string是String的别名,object是Object的别名。 但就编码规范来说,系统中最好使用一种,要么全用string,要么全用String。

.NET支持哪几种访问性级别,C#实现了其中的哪几种?

.NET支持的访问性级别有6种,分别是Public, Private, Family,Assembly,Family&Assembly, Family or Assembly,C#除了Family&Assembly没有实现,其他都实现,相对应的关键字是public,private,protected,internal,protect internal

什么是属性?它有什么优点?它和方法有什么区别? 属性是指有返回值无参数的特殊方法; 优点就是属性具有很好的扩展性。(尝试举例p64)

和方法区别就是代替了早期的GetXXX/SetXXX方法,方便使用以及使代码可读性提高。

简述C#中的浅复制和深复制。

foreach循环语句和其他循环语句相比有何优点?有何局限?

foreach循环语句适合遍历实现了IEnumberable接口的容器类,但不允许直接修改遍历项目的值,但可调用其方法来修改,其执行效率较高,在开发中应优先考虑使用。

C#中的using语句有什么作用?

using语句为实现IDisposable的类对象在using块结束后,自动调用Dispose()方法释放资源,相当于一个try/catch块,相当于一个异常处理块,所有对象应该在using语句开始后创建对象。

System.String是值类型还是引用类型?

是引用类型,其对象初始化后不能再做修改,一旦修改表示一个新字符串的生成。

StringBuilder类型有何作用?

当一个字符串被修改、连接等操作,最终生成需经过组装过程,期间会产生很多不需要的临时字符串对象,大大影响了程序性能,所以用StringBuilder类解决这个问题,一旦此类的ToString()方法被调用时,生成最终字符串对象。

String和Byte[]之间的互相转换?(用到哪个类和哪2个方法) Encoding.UTF8.GetBytes(字符串对象);

Encoding.UTF8.GetString(字节数组对象);

什么是字符串池机制?

CLR会保留程序中出现过的字符串对象集合,在需要新字符串时在其中查找,找到则返回已有对象引用,致力于改善程序性能。(当然也可以使用StringBuilder类代替String类)

Int[]是值类型还是引用类型?

数组类型是一个类型族,都继承自System.Array,而System.Array又继承自System.Object,所以是引用类型。

C#中类可以有多个父类吗?可以实现多个接口吗?

不能实现多继承,但可以实现多接口。.NET接口指一系列方法、属性、索引和事件的签名。

简述C#中重写、重载和隐藏的概念。 重写(override):是指子类用Override关键字重新实现定义在父类中的虚方法,并在实际运行时根据对象类型来调用相应的方法。

隐藏:是指子类用new关键字重新实现定义在父类中的方法,但在实际运行时只能根据引用来调用相应的方法。 重载(overload):拥有相同名字和返回值的方法拥有不同的参数列表。

为什么不能在构造函数中调用虚方法?

一个类的构造顺序是:先初始化成员变量,然后执行父类构造函数,然后执行自己的构造函数。也就是说当子类被创建时,现调用父类构造函数,其中含有虚方法,即子类构造函数中将重写此虚方法,然而此时子类构造还未完成,则对于为构造的子类成员访问是错误的。

如何声明一个类不能被继承? 用sealed关键字

进行类型判断时或者类型转换时如何更高效和避免异常? 用is和as关键字。

什么是泛型?泛型有什么好处?

泛型允许程序员定义更通用的类型和算法,并且在具体使用时再生成具体类型。 能够避免容器类的装箱和拆箱问题。

什么是泛型的主要和次要约束?

主要约束指泛型的参数必须是引用类型,次要约束是指泛型的参数必须实现的接口。

什么是STL模板库?

是一种通用的、高效的算法、容器和迭代器的集合,有助于程序员更加高效的开发和节省时间。

--------------------------------------------------委托和事件-----------------------------------------------------

什么是委托?委托有什么优点?你什么时候会用到委托。

委托是一个继承自System.Delegate的类,每个委托变量都至少绑定了一个方法,当调用委托方法时,就会调用绑定到委托对象上的方法。

委托使程序更具有扩展性和灵活性,减少类与类之间的耦合度。

一个叫做stop()的方法要关闭多种电器,当需要添加新电器时不得不修改stop()方法;而用委托只需声明一个委托变量,将控制某种电器关闭方法绑定到此委托就可以了。

委托绑定实例方法和静态方法有什么区别?

委托内部有两个成员变量,_target和_methodPtr,当绑定实例方法时,_target的值为该方法所在类的实例对象,_methodPtr为该方法;当绑定静态方法时,_target则为null。

什么时链式委托?请举个简单例子。 就是多点委托。

public delegate void stopDelegate(); public static void stopTV() {

Console.WriteLine(\关闭电视机\); }

public static void stopLight() {

Console.WriteLine(\关灯\); }

public static void stopFan() {

Console.WriteLine(\关电扇\); }

static void Main(string[] args) {

stopDelegate stop = stopTV; stopDelegate stop2 = stopLight; stopDelegate stop3 = stopFan;

stopDelegate stopHead = stop + stop2 + stop3; //链表头 stopHead(); }

链式委托执行顺序是怎样的?

委托结构里有个_prev变量指定链表中最后一个委托对象。 用Combine()方法来规定调用顺序。

链式委托的返回值是怎么样的?

委托多个有返回值的方法,只返回最后一个方法的返回值。

什么是事件?举一个简单例子。 事件是一种特殊的委托。

本文来源:https://www.bwwdw.com/article/rfxf.html

Top