1. 什么是面向对象?
答:C#中面向对象是一种编程思想
- 封装:所谓封装也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性
- 继承:继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
- 多态:所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们可以通过相同的方式予以调用。
2. 线程和进程的区别?
答:1.进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位)
2.进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,一个进程包含多个线程
3. Public static const int a=1;这段代码错在哪里?
答:const不能被修饰为static ;因为定义为常量 (const )后就是静态的(static )
扩展:C#—static静态类
4. 在.net中不想让一个类被继承用哪个单词修饰?序列化一个类用哪个单词标记?
答:1.只需要在定义类时加上 sealed 关键字
public sealed class Room
{
...
}
2.在类定义前写上[Serializable()]
[Serializable()]public class User{
...
}
6. 简单描述Ihtttphandler和Ihttpmodule的区别和各自的作用?
区别:
- 先后次序。先IHttpModule,后IHttpHandler。 注:Module要看你响应了哪个事件,一些事件是在Handler之前运行的,一些是在Handler之后运行的。
- 对请求的处理上。IHttpModule 是属于大小通吃类型,无论客户端请求的是什么文件,都会调用到它;例如 aspx,rar,html的请求。IHttpHandler则属于挑食类型,只有ASP.net注册过的文件类型(例如aspx,asmx等等) 才会轮到调用它。
- IHttpHandler按照你的请求生成响应的内容,IHttpModule对请求进行预处理,如验证、修改、过滤等等,同时也可以对响应进行处理。
7. 随便写出一个json格式串?
[{"age":"18"},{"name":"张三"},{"sex":"男"}]
8. 什么是扩展方法?
- 一句话解释,扩展方法使你能够向现有类型“添加”方法,无需修改类型
- 条件:按扩展方法必须满足的条件,1.必须要静态类中的静态方法2.第一个参数的类型是要扩展的类型,并且需要添加this关键字以标识其为扩展方法
- 建议:通常,只在不得已的情况下才实现扩展方法,并谨慎的实现
- 使用:不能通过类名调用,直接使用类型来调用
9. int?和int有什么区别
- int?为可空类型,默认值可以是null
- int默认值是0
- int?是通过int装箱为引用类型实现
10. const和readonly有什么区别?
都可以标识一个常量。主要有以下区别:
- 1、初始化位置不同。const必须在声明的同时赋值;readonly即可以在声明处赋值,也可以在静态构造方法(必须是静态构造方法,普通构造方法不行)里赋值。
- 2、修饰对象不同。const即可以修饰类的字段,也可以修饰局部变量;readonly只能修饰类的字段
- 3、const是编译时常量,在编译时确定该值;readonly是运行时常量,在运行时确定该值。
- 4、const默认是静态的;而readonly如果设置成静态需要显示声明
- 5、修饰引用类型时不同,const只能修饰string或值为null的其他引用类型;readonly可以是任何类型。
11. a.Equals(b)和a==b一样吗?
不一样,a==b仅仅表示a和b值相等,a.Equals(b)表示a与b一致
12.下面这段代码求值
class Class1
{
internal static int count = 0;
static Class1()
{
count++;
}
public Class1()
{
count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
o1.count的值是多少?
答案:3,静态 构造方法计算一次,两个实例化对象计算两次。
13. 关于构造函数说法正确的是哪个?
a)构造函数可以声明返回类型。
b)构造函数不可以用private修饰
c)构造函数必须与类名相同
d)构造函数不能带参数
答案:c ,构造函数必须与类名相同,可以传递多个传递,作用就是便于初始化对象成员,不能有任何返回类型