1. 传入某个属性的set方法的隐含参数的名称是什么?
value,它的类型和属性所声名的类型相同。 
2. 如何在C#中实现继承?
在类名后加上一个冒号,再加上基类的名称。 
3. C#支持多重继承么?
不支持。可以用接口来实现。 
4. protected修饰的属性/方法在何处可以访问?
在继承或间接继承与这个类的子类中可以访问。 
5. 私有成员会被继承么?
会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。 
6. 请描述一下修饰符protected internal
protected internal修饰的属性/方法只能在它的在同一个程序集(Assembly)中的子类被访问。 
7. C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。 
8. C#中所有对象共同的基类是什么?
System.Object.
9. 重载和覆写有什么区别?
重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。 
10. 在方法定义中,virtual有什么含意?
virtual修饰的方法可以被子类覆写。 
11. 能够将非静态的方法覆写成静态方法么?
不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override 
12. 可以覆写私有的虚方法么?
不可以,甚至子类中无法访问父类中的私有方法。 
13. 能够阻止某一个类被其他类继承么?
可以,使用关键字sealed 
14. 能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?
可以,标记这个类为public,并标记这个方法为sealed 
15. 什么是抽象类(abstract class)?
一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。 
16. 何时必须声明一个类为抽象类?
当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。 
17. 接口(interface)是什么?
只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。 
18. 为什么不能指定接口中方法的修饰符?
接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。 
19. 可以继承多个接口么?
当然。 
20. 那么如果这些接口中有重复的方法名称呢?
这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。 
21. 接口和抽象类的区别是什么?
接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。 
22. 如何区别重载方法?
不同的参数类型,不同的参数个数,不同的参数顺序。 
23. constreadonly有什么区别?
const关键字用来声明编译时常量,readonly用来声明运行时常量。 
24. System.String System.StringBuilder有什么区别?
System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法。 
1. 面向对象和面向过程的区别有哪些 ,
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。算法第一,方法第二。

    面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。方法第一,算法第二。
简答题目
1.    面向对象的思想主要包括什么?继承 多态 封装
®      封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据
类型内部。
®      继承:子类拥有父类的所有数据和操作。
®      多态:一个程序中同名的不同方法共存的情况。
有两种形式的多态– 重载与重写。
2.    什么是装箱和拆箱?举例说明。
装箱(boxing)和拆箱(unboxing)机制使得在C#类型系统中,任何值类型、引用类型和object(对象)类型之间进行转换,这种转换称为绑定连接。简单地说,有了装箱和拆箱的概念,对任何类型的值来说最终都可看作是object类型。  1、装箱转换
含义:将一个值类型隐式地转换成一个object类型,或把这个值类型转换成一个被该值类型应用的接口类型,把一个值类型的值装箱,就是创建一个object实例并将值复制给这个object
如: int I=10;  object obj=I;  也可用显式的方法进行装箱操作: object obj=(object)I;
2、拆箱转换
和装箱相反,拆箱转换是指将一个对象类型显式地转换成一个值类型,或将一个接口类型显式地转换成一个执行该接口的值类型。
过程分两步:
首先,检查这个对象实例,看它是否为给定的值类型的装箱值
然后,把这个实例的值拷贝给值类型的变量。如:
    int I=10;
  object obj=I;
Int j=(int)obj;
3.      什么是重载?override与重载的区别?
重载是指针对所继承下来到方法,重新设计其处理方式,为将来原本处理方式覆盖过去。
在派生类要覆盖的方法前加override修饰,而基类的同名方法前加virtual修饰。这样就能实现多态。多态指一个程序中同名的不同方法共存的情况。 有两种形式的多态– 重载与重写。
4.      值类型和引用类型的区别?写出C#的样例代码。
®      值类型的变量本身包含他们的数据,而引用类型的变量包含的是指向包含数据的内存块的引用或叫句柄。
®      值类型变量存储在堆栈。每个程序在执行时都有自己的堆栈,其他程序不能访问。
®      引用类型存储在堆。引用类型存贮实际数据的引用值的地址。
®      C#中的引用类型有4种
®      (类、代表、数组、接口)
5.      如何理解委托?
代理是C#中的一种新的类型,要把方法作为参数传递给其他方法时,需要用到代理。
方法通过参数获得外界传递给他的数据,并对这些数据进行一定的操作。析构方法
C#通过代理机制来实现,通过参数把一个方法传递给另外一个方法。
代理四步曲:
a.生成自定义代理类:delegate int MyDelegate();
b.用New运算符实例化代理类:
        MyDelegate d = new MyDelegate(MyClass.MyMethod);
c.最后通过实例对象调用方法:int ret = d();
d. 在程序中像调用方法一样应用代理的实例对象调用它指向的方法。      delegate int d(int I);
6.      C#中的接口和类有什么异同。
什么是类?类可以这么理解.类就是功能的集合.类也可以看做是实现一种功能的集合或者方法..
接口的概念:什么是接口?接口可以理解为,对类的规定,对类的约束,甚至对整个项目的约束. 种模版,定义了对象必须实现的方法,其目的就是让这些方法可以作为接口实例被引用。接口不能被实例化。接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!而类是负责功能的具体实现!在类中也有抽象类的定义,抽象类与接口的区别在于:抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。但接口是一个行为的规范,里面的所有东西都是抽象的!一个类只可以继承一个基类也就是父类,但可以实现多个接口
7.      net中读写数据库需要用到哪些类?
Connection DataAdapter DataSet Command DataReader
8.      如何理解中的垃圾回收机制。
如果发现内存不够,则垃圾回收器,将全部对象作为无效对象(被回收对象),然后先将全局变量,static,处于活动中的局部变量,以及当前CG指针指向的对象放入一个表中.然后
会搜索新列表中的对象所引用的对象.加入列表中,其他没有被加入列表的对象都会被回收.
非托管对象要记得释放资源就行了吧.
9.      的错误处理机制是什么
错误的处理顺序:finally先,catch次之,最后退会try代码..取消此次操作.返回catch中的异常信息.当然,你也可以定制自己的错误处理机制...如果你的异常处理中包含finally块.则此finally无论是否发生异常始终会被执行...
10.  c#中using和new这两个关键字有什么意义?
using 的用途是为某个namespace建立别名,或者引用存在系统中的其它namespace.
New 用来创建实例,或者覆写方法。
11.  谈谈类和结构的区别?
1. 值类型与引用类型
®      结构是值类型:值类型在堆栈上分配地址
®      类是引用类型:引用类型在堆上分配地址
2.继承性
®      结构:不能从另外一个结构或者类继承,本身也不能被继承,虽然没有明确sealed声明,可结构是隐式的sealed .
®      类:完全可扩展的,除非显式声明sealed, 否则类可以继承其他类和接口,自身也能被继承。
注:虽然结构不能被继承 ,可结构能够继承接口,方法和类继承接口一样 。
3.内部结构的区别:
结构:
®      没有默认的构造函数,可以添加构造函数
®      没有析构函数
®      没有 abstract 和 sealed(因为不能继承)
®      不能有protected 修饰符
®      可以不用new 初始化
®      在结构中初始化实例字段是错误的
类:
®      有默认的构造函数
®      有析构函数
®      可以使用 abstract 和 sealed
®      有protected 修饰符
®      必须使用new 初始化
12. 什么是CLR?
公共语言运行时(Common Language Runtime,CLR),提供了一个可靠而完善的多语言运行环境。CLR是一个软件引擎,用于加载应用程序、检查错误、进行安全许可认证、执行和清空内存。它属于纯动态运行时的一种,它的主要组成部分是虚拟执行引擎VEE(Virtual Execution Enging),它可以打破语言和平台的限制。
13. C#的优点是什么?至少列出4点
1.    C#中指针已经消失. 允许对原始指针的有限制的使用.
2.    基于.NET平台的,继承了自动内存管理和垃圾回收的特点.
3.    C#拥有内建的支持来将任何组件转换成一个web service,运行在任何平台上的任何应用程序都可以通过互联网来使用这个服务.
4.    面向对象的
14. 面向对象编程的三大原则是什么?分别加以说明。
®      继承:都支持类的单一继承,但类可以实现多个接口。所有类都从一个公共的基类继承。
®      封装与可见性:都可决定类成员是否可见。除了C#的internal访问修饰符外,两者可见
性机制非常相似
®      多态性:Java和C#都支持某些形式的多态性机制,且两者实现方法非常类似。
15. C#有哪5种类型的可访问性?
®      public:成员可以从任何代码访问。
®      protected:成员只能从派生类访问。
®      internal:成员只能从同一程序集的内部访问。
®      protected internal:成员只能从同一程序集内的派生类访问。
®      private:成员只能在当前类的内部访问。
16. C#代码在执行前要编译为中间语言,中间语言的主要特征有?
● 面向对象和使用接口
● 值类型和引用类型之间的巨大差别
● 强数据类型
● 使用异常来处理错误
● 使用属性(attribute)
17. C#中引用类型有哪几种?
(类、代表、数组、接口)
18. 对象间可能存在的三种关系?
聚合,一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称作聚合。
关联,对象之间的静态联系(即通过对象属性体现的联系)称作关联。
继承
1 请你说说.NET中类和结构的区别?
  答:结构和类具有大体的语法,但是结构受到的限制比类要多。结构不能申明有默认的构造函数,为结构的副本是又编译器创建和销毁的,所以不需要默认的构造函数和析构函数。结构是值类型,所以对结构变量所做的改变不会影响其的原值,而类是应用类型,改变其变量的值会改变其原值。申明结构用 Struck关键字,申明类用class关键字,向方法传递结构是时是通过值传递的,而不是通过引用。与类不同,结构的实例化可以不使用New关键字。类可以实现接口。
  2 死锁的必要条件?怎么克服?
  答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已阻塞,对已获得资源不放,进程获得资源时,未使用完前,不能强行剥夺。
  3 接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?
  答:接口是可以继承接口的,抽象类是可以实现接口的,抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。
  4 构造器Constructor是否可以被继承?是否可以被Override?
  答:Constructor不可以被继承,因此不能被重写(Overriding),但可以被重载(Overloading).
  5 当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的方法?
  答:不可以,一个对象的方法只能由一个线程访问。
  6 用最有效的方法算出等已8对于几?
  答:2<<3.
  7, C#是否可以对内存直接进行操作?
  答:这个问题比较难回答,也是个很大的问题。但是可以这样问答。C#是可以对内存进行直接操作的,虽然很少用到指针,但是C#是可以使用指针的,在用的时候需要在前边加unsafe,,在中使用了垃圾回收机制(GC)功能,它替代了程序员,不过在C#中不可以直接使用finalize 方法,而是在析构函数中调用基类的finalize()方法。