1. 面向对象的三大特性?
- 封装性 对外部不可见
- 继承性 扩展类的功能
- 多态性 方法的重载 对象的多态性
2. 请列出c#中几种循环的方法,并指出他们的不同
- for
- while
- foreach
不同:
for循环用于已经确定将你的表达式需要执行多少次的情况
while表达式将会执行一段代码直到条件语句为false。While循环通常更适合数据库相关操作。
foreach就是把一个数组或者集合里的东西遍历一遍;但要想支持foreach,那么必须实现IEnumble接口;不然没法遍历;
3. 如何声明一个类不能被继承
方法一:将构造函数声明为私有的
方法二:我们可以声明一个辅助的类A,把类A这个类的构造函数声明为私有的,并使得B是A的友元类,且B虚继承A。这样的话别的类就
不能继承B了。
4. 静态类和静态方法的好处?
好处是:在外部调用bai静态方法时,可以使用"类名.方法名"的方du式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
5. 静态类与普通类的区别?
所谓静态,指以static关键字修饰的,包括类,方法,块,字段。
非静态,指没有用static 修饰的。
静态类和非静态类之间的区别:
内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用
非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员
一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面
6.C#中string 和String 有什么区别
两种类型完全一样,没有区别;
string 类型表示一个字符序zhi列(零dao个或更多 Unicode 字符)。 string 是 .NET Framework 中 String 的别名。
尽管 string 是引用类型,但定义相等运算符( == 和 !=)是为了比较 string 对象(而不是引用)的值。 这使得对字符串相等性的测试更为直观。
String 表示文本,即一系列 Unicode 字符;命名空间: System ;程序集: mscorlib(在 mscorlib.dll 中);String 对象称为不可变的(只读),因为一旦创建了该对象,就不能修改该对象的值。 看来似乎修改了 String 对象的方法实际上是返回一个包含修改内容的新 String 对象。 如果需要修改字符串对象的实际内容,需使用 System.Text .StringBuilder 类
7. 简述 private、 protected、 public、 internal 修饰符的访问权限。
- private : 私有成员, 在类的内部才可以访问。
- protected : 保护成员,该类内部和继承类中可以访问。
- public : 公共成员,完全公开,没有访问限制。
- internal: 当前程序集内可以访问。
8. 简述ADO.NET中的五个主要对象
- Connection 连接对象
- Command命令对象,指示要执行的命令和存储过程!
- DataReader是一个向前的只读的数据流。
- DataAdapter是功能强大的适陪器,支持增删改查的功能
- DataSet是一个数据级对象,相当与内存中的一张表或多张表!
9.ADO.NET支持哪两种方式来访问关系数据库
连接模式
可通过command(命令)对象执行SQL语句或存储过程。如果执行的结果返回的是一个记录集,则可以使用DataReader(数据读取器)对象读取数据。这里需要注意,DataReader ADO.NET的连接模式只能返回向前的、只读的数据,这是因为DataReader对象的特性决定的。
非连接模式
在数据集方式中,操作数据的基本过程是首先使用数据适配器将数据加载到内存中(数据集对象),在数据集对象中操作数据,然后再使用数据适配器将更改会写到数据库中。
就现在的经验来说,非连接模式大大减少了对连接的占用频率。
10. 重载(Overload )和覆写(Override)的区别
概念:方法名相同,参数列表不同(参数类型及个数),与返回值无关
方法名,返回值类型,参数类型及个数完全相同
范围 :一个类中 继承关系中
限制:没有权限要求 覆写的方法的访问权限不能比父类更严格