C#的基本知识点
2011-09-27 14:57
190 查看
本文转自:/article/5549600.html
1. 什么是类? 什么是结构体? 二者有什么区别? 相同点是什么? 你经常使用类还是结构体?为什么?
类:同一类对象共同属性和行为的抽象用户自定义的
结构体:同一类共同属性和行为的抽象
二者区别:类:引用类型 结构体:值类型
二者相同点:对共同属性和行为的抽象
2..怎样理解静态变量和静态方法? 静态构造函数的作用是什么?
静态变量:属于类,不属于对象
静态方法:不用创建类的实例,直接使用类的方法,方法变量在栈上,
静态构造函数的作用:初始化类的静态数据成员,在代码加载时执行;
程序中无法调用静态构造函数,此前的任何修饰符都是无效的;
静态构造函数,没有参数
3.值类型与引用类型有什么区别?
值类型:数据存储在栈上,直接存储数据本身
引用类型:数据存储在堆上,在栈上引用其地址
二者区别:
l 所有内置对象,除了object和string 以外,都是值类型,所有用户定义类型,除了结构体都是引用类型;
4.override 与重载有什么区别?
Override:覆盖:在继承关系中,父类中的虚方法,在子类中需要重写时
Overload:重载:同一个类中,函数名相同,参数列表不同,实现不同功能
5.你在什么情况下会用到虚方法?它与接口有什么不同?
子类要重写父类中的方法时,父类中方法应声明为虚方法;
接口:只有方法声明,没有方法体,可以有属性和索引器(都是方法),有概念上的共同特征,要用接口实现,没有方法体
虚方法:不但有方法声明,还要有方法体
6.什么是抽象方法? 什么是抽象类?
抽象方法:只有方法签名,没有方法体
抽象类:类前加关键字abstract,则为抽象类,抽象类不能创建对象
一个类中,如果有抽象方法,则该类一定位抽象类;但是抽象类中不一定有抽象方法
7. 怎样理解类、抽象类、和接口之间的异同?
抽象程度不同:
接口:最高程度抽象,忽略对象,只考察行为概念,不考虑行为的具体实现
类:对对象属性和行为的抽象,以及重点考察方法的具体实现过程
抽象类:二者中间:行为一样,实现不同
8..c#是一种纯粹面向对象的语言。面向对象语言具有什么特点?
抽象,封装 (结果是类),继承,多态
9.类和类之间有哪些关系?
继承,多态,聚合,组合,关联
10.@的作用是什么?
是转义字符失效,用在常量字符串前
表示常量字符串没有需要转义的字符
11.什么是序列化? 为什么要序列化?(什么时候必须作序列化?)如何实现序列化?
序列化:把对象数据成员转化为字节流,只序列化数据成员,不序列化方法
为了把对象保存到存储介质或者在网络上传输,做序列化!
默认的序列化方法:类的定义前加属性:Serializable,编译器会将序列化方法添加到类中
自定义序列化方法:接口:ISerilizable(GetOjbectData方法),还需要加上属性
凡序列化:BinaryFormatter ,SoapFormatter
12.阐述C#中的访问修饰符。类和类的成员的访问修饰符分别有哪些?权限是什么?
类中的Public:任何地方都可用,Internal:当前程序集中可用
类成员的
Public:
Protected:本身和子类
Private:
13.什么是操作符重载?为什么要操作符重载?如何实现操作符重载?
操作符重载:在不改变操作符固有的含义情况下,重新定义操作符,目的:扩大操作符的作用范围,必须公有,静态,放在一个类中
Public Static 返回类型 operator ——(参数列表),该操作符,作用在该类上
Class A
{
Public Static 返回类型 operator ——(A a,。。。)//必须出现一个
}
14.C#中有指针吗?
十三种基本数据类型有指针,其他数据类型没有指针,在非安全模式下用
15..c#中的委托是什么?事件是不是一种委托?委托的作用是什么?
委托:是一种特殊的类:不用Class而用Delegate定义,
目的:封装一个方法的名称
作用:取代C++中的函数指针,把方法封装在委托对象中
定义委托对象,达到传递方法的目的
事件时委托定义的一个变量,事件只能作为类的数据成员出现,不能再方法体中出现
16.什么是应用程序域?
将进程的进一步划分为多个应用程序域,每个应用程序域运行一个应用程序。应用程序域之间相互隔离,互不影响。是一种轻量级的进程(19)
17.怎样理解托管代码?
运行在。NET平台上的代码,运行在CLR(Commom Language Runtime)公共语言运行库上的代码,都是托管代码
18.怎样理解强类型系统?
强类型系统:声明变量时,就指定其存放的数据类型,如C#;JavaScript是弱类型系统
19.解释装箱和拆箱
装箱:值类型到Ojbect类型,或者该值类型所实现的任何接口类型之间的转换。
对值类型装箱,会在堆上分配一个实例对象,并将该值复制到新的对象中。
值类型的数据转换成一个引用类型的数据
20.const 和readonly 的区别是什么? ref、out、和 params的作用和区别是什么?
Const:定义常量,只能在定义时,初始化;可以是类变量也可以是局部变量,如果是类变量是静态的
Readonly:只读变量,可以在定义时初始化,也可以在构造函数里初始化,只能是类变量
Ref:强制引用传递,阻止形参对实参的临时拷贝,实参和形参指向同一存储区域,
实参必须初始化才能用,形参必须初始化
Out:实参不用初始化,形参不用
Params:修饰传递可变参数的数组,
21.这些符号的含意是什么: &、 &&、 | 、||、 !、 ^、~。
&:按位与,
&&:逻辑与,操作数为逻辑表达式,;
短路现象:a1=T,a2=F,(a1=null计算A1&&a2汇报错) a1&&a2 ,a2&&a1, a1||a2,a2||a1, 1.结果一样2。效率不一样。
|:
||:
!:逻辑非
~:按位取反
^:按位异或 同0异1
22.CTS、CLS、CLR是什么?图示 VB.Net、 C#.net、 CTS、CLS、CLR 之间的关系?
CTS: Common Type System 公共类型系统
CLS:Common Language Specification公共语言规范
CLR: Common Language Runtime 公共语言运行时
跨语言开发:CTS ;C#.NET,C++,VB等语言遵循CLS,---àCTS---àCLR
1. 什么是类? 什么是结构体? 二者有什么区别? 相同点是什么? 你经常使用类还是结构体?为什么?
类:同一类对象共同属性和行为的抽象用户自定义的
结构体:同一类共同属性和行为的抽象
二者区别:类:引用类型 结构体:值类型
二者相同点:对共同属性和行为的抽象
2..怎样理解静态变量和静态方法? 静态构造函数的作用是什么?
静态变量:属于类,不属于对象
静态方法:不用创建类的实例,直接使用类的方法,方法变量在栈上,
静态构造函数的作用:初始化类的静态数据成员,在代码加载时执行;
程序中无法调用静态构造函数,此前的任何修饰符都是无效的;
静态构造函数,没有参数
3.值类型与引用类型有什么区别?
值类型:数据存储在栈上,直接存储数据本身
引用类型:数据存储在堆上,在栈上引用其地址
二者区别:
l 所有内置对象,除了object和string 以外,都是值类型,所有用户定义类型,除了结构体都是引用类型;
4.override 与重载有什么区别?
Override:覆盖:在继承关系中,父类中的虚方法,在子类中需要重写时
Overload:重载:同一个类中,函数名相同,参数列表不同,实现不同功能
5.你在什么情况下会用到虚方法?它与接口有什么不同?
子类要重写父类中的方法时,父类中方法应声明为虚方法;
接口:只有方法声明,没有方法体,可以有属性和索引器(都是方法),有概念上的共同特征,要用接口实现,没有方法体
虚方法:不但有方法声明,还要有方法体
6.什么是抽象方法? 什么是抽象类?
抽象方法:只有方法签名,没有方法体
抽象类:类前加关键字abstract,则为抽象类,抽象类不能创建对象
一个类中,如果有抽象方法,则该类一定位抽象类;但是抽象类中不一定有抽象方法
7. 怎样理解类、抽象类、和接口之间的异同?
抽象程度不同:
接口:最高程度抽象,忽略对象,只考察行为概念,不考虑行为的具体实现
类:对对象属性和行为的抽象,以及重点考察方法的具体实现过程
抽象类:二者中间:行为一样,实现不同
8..c#是一种纯粹面向对象的语言。面向对象语言具有什么特点?
抽象,封装 (结果是类),继承,多态
9.类和类之间有哪些关系?
继承,多态,聚合,组合,关联
10.@的作用是什么?
是转义字符失效,用在常量字符串前
表示常量字符串没有需要转义的字符
11.什么是序列化? 为什么要序列化?(什么时候必须作序列化?)如何实现序列化?
序列化:把对象数据成员转化为字节流,只序列化数据成员,不序列化方法
为了把对象保存到存储介质或者在网络上传输,做序列化!
默认的序列化方法:类的定义前加属性:Serializable,编译器会将序列化方法添加到类中
自定义序列化方法:接口:ISerilizable(GetOjbectData方法),还需要加上属性
凡序列化:BinaryFormatter ,SoapFormatter
12.阐述C#中的访问修饰符。类和类的成员的访问修饰符分别有哪些?权限是什么?
类中的Public:任何地方都可用,Internal:当前程序集中可用
类成员的
Public:
Protected:本身和子类
Private:
13.什么是操作符重载?为什么要操作符重载?如何实现操作符重载?
操作符重载:在不改变操作符固有的含义情况下,重新定义操作符,目的:扩大操作符的作用范围,必须公有,静态,放在一个类中
Public Static 返回类型 operator ——(参数列表),该操作符,作用在该类上
Class A
{
Public Static 返回类型 operator ——(A a,。。。)//必须出现一个
}
14.C#中有指针吗?
十三种基本数据类型有指针,其他数据类型没有指针,在非安全模式下用
15..c#中的委托是什么?事件是不是一种委托?委托的作用是什么?
委托:是一种特殊的类:不用Class而用Delegate定义,
目的:封装一个方法的名称
作用:取代C++中的函数指针,把方法封装在委托对象中
定义委托对象,达到传递方法的目的
事件时委托定义的一个变量,事件只能作为类的数据成员出现,不能再方法体中出现
16.什么是应用程序域?
将进程的进一步划分为多个应用程序域,每个应用程序域运行一个应用程序。应用程序域之间相互隔离,互不影响。是一种轻量级的进程(19)
17.怎样理解托管代码?
运行在。NET平台上的代码,运行在CLR(Commom Language Runtime)公共语言运行库上的代码,都是托管代码
18.怎样理解强类型系统?
强类型系统:声明变量时,就指定其存放的数据类型,如C#;JavaScript是弱类型系统
19.解释装箱和拆箱
装箱:值类型到Ojbect类型,或者该值类型所实现的任何接口类型之间的转换。
对值类型装箱,会在堆上分配一个实例对象,并将该值复制到新的对象中。
值类型的数据转换成一个引用类型的数据
20.const 和readonly 的区别是什么? ref、out、和 params的作用和区别是什么?
Const:定义常量,只能在定义时,初始化;可以是类变量也可以是局部变量,如果是类变量是静态的
Readonly:只读变量,可以在定义时初始化,也可以在构造函数里初始化,只能是类变量
Ref:强制引用传递,阻止形参对实参的临时拷贝,实参和形参指向同一存储区域,
实参必须初始化才能用,形参必须初始化
Out:实参不用初始化,形参不用
Params:修饰传递可变参数的数组,
21.这些符号的含意是什么: &、 &&、 | 、||、 !、 ^、~。
&:按位与,
&&:逻辑与,操作数为逻辑表达式,;
短路现象:a1=T,a2=F,(a1=null计算A1&&a2汇报错) a1&&a2 ,a2&&a1, a1||a2,a2||a1, 1.结果一样2。效率不一样。
|:
||:
!:逻辑非
~:按位取反
^:按位异或 同0异1
22.CTS、CLS、CLR是什么?图示 VB.Net、 C#.net、 CTS、CLS、CLR 之间的关系?
CTS: Common Type System 公共类型系统
CLS:Common Language Specification公共语言规范
CLR: Common Language Runtime 公共语言运行时
跨语言开发:CTS ;C#.NET,C++,VB等语言遵循CLS,---àCTS---àCLR
相关文章推荐
- C#基本知识点,与C++不同点
- C# 编程 TCP协议 (基本知识点)
- C#基本知识点-Readonly和Const的区别
- Unity 3DC#语法基本知识点
- 博客园.net面试问题大搜集-C#基本知识点
- winform 知识点/c#基本类型/listbox与listview区别
- 【Unity3D】Unity3D中的C#基本语法知识点①(变量与数组)
- C#基本知识点-Readonly和Const的区别
- C#学习基本概念之事件(三)---发布符合.NET Framework准则的事件
- C#零碎知识点
- C#数据同步中基本步骤和用到的相关函数
- C#对象小知识点
- 正则表达式的基本知识点
- [C# 基础知识系列]C#中易混淆的知识点
- Smarty的一些基本知识点
- C#软件开发实例.私人订制自己的屏幕截图工具(四)基本截图功能实现
- C#操作Excel 基本常规语句
- JavaScript基本知识点
- C#零碎知识点笔记
- C#编写Windows服务的基本过程