-
简述 C #语言的特点
简单 安全 面向对象 -
简述C#程序的特点
必须借助.Net Framework类库实现 必须定义类 类的代码主要由方法组成 -
指出以下关键字在C#程序中的作用 :using、namespace 、class、this
使用using关键字把.Net Framework 类库相对应的命名空间引入到引用程序中 -
根据以下叙述,请分别输出相应的C#语句
1、在控制台上输出中国,加油这一句话 Console.WriteLine(“中国,加油”);
2、假设在某个窗体中已存在标签控件 lblShow,请使用该控件输出 祝您新您快乐。 lblShow.Text = “祝您新您快乐!”
- 在进行数据类型转换时,隐式转换遵守哪些规则?如何实现显示转换?
隐式转换自动进行 显示转换使用Parse方法 ToString方法。
1、设计一个Windows程序,计算以下分数序列前20项的和
2、输入一行字符,检索是否存在重复的二字词汇,输出重复的次数。
-
什么叫类?什么叫对象?二者是什么关系?
类是对相似对象的抽象,而对象是该类的一个特例,类与对象的关系是抽象与具体的关系。 -
在C# 中,类可以使用哪些修饰符?各代表什么含义?类的成员可以使用哪些修饰符?各代表什么含义?
类可以使用 public internal protected privated
类的成员可以使用
类的成员默认为private
访问修饰符只是控制类的外部对类成员的访问,类的内部对自己成员的访问不受限制,即在类的内部可以访问所有的类成员。 -
简述类的字段成员与属性成员的区别?
-
简述值类型与引用类型的区别
1、对于值类型变量,程序在运行时一旦遇到其定义语句,系统将直接为该变量分配内存空间,因此之后可以直接赋值和使用。
2、引用型变量在定义时系统不会为它分配空间,只有当他实例化之后才能得到真正的存储空间、 -
举例说明,按置传参、按引用传参和输出参数的区别
-
什么叫方法的重载?两个方法是重载关系时,应满足什么条件?
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
重载方法有两种要求。
1、重载的方法名称必须相同
2、重载方法的形参个数或类型不能相同。 -
简述对象的声明周期以及构造函数和终结器的作用
1、使用new运算符创建对象并要求获得内存。
2、自动调用构造函数完成对象的初始化
3、使用对象,包括访问对象的数据成员、调用对象的方法成员。
4、释放对象所占用的资源,释放对象,回收内存。
析构函数和终结器的作用:主要用来回收类的实例所占用的资源。
- C#静态成员有什么作用?静态方法和实例方法有什么区别?静态的构造函数的作用是什么?静态构造函数能否重载?
1、静态成员与非静态成员的区别在于:前者属于类,而不属于类的实例,因此必须通过类来访问,而不能通过类的实例来访问;后者则总是与特定的实例相联系。
在实际应用中,当类的成员所引用或操作的信息与类有关而与类的实例无关时,就应该把它设置为静态成员。
2、
3、静态构造函数是用来初始化类的静态字段的。
4、静态构造函数不支持重载,也就是不允许定义多个静态构造函数。 - 简述创建派生类对象时,构造函数的调用顺序是什么?举例说明如何调用基类的带参的构造函数
调用的顺序是先调用基类的构造函数,完成基类部分的成员初始化,在调用派生类的构造函数,完成派生类新添加成员的初始化。
在声明派生类的构造函数时必须使用base关键字向基类的构造函数传递参数。 - 什么是抽象类?抽象类有什么特点?举例说明抽象类及其成员的定义方法。
由abstract修饰的方法叫抽象方法;由abstract修饰的类叫抽象类 在C#中,凡是包含了无法实现的成员的类就是抽象类,其中那些无法实现的操作就是类的抽象成员。 - 抽象方法和虚方法有什么区别?请举例说明。
虚成员是一个完整的已经实现了具体操作功能的成员。实际上,有些操作是不可能实现的。例如,有关几何形状的体积计算问题,若把几何形状定义为类,把体积计算定义为方法,显然,该方法是不可能实现的,只有一个具体的几何形状的体积才能计算。
- 集合和数组有何区别?
1、数组声明了它容纳的元素的类型,而集合不声明。
2、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。
3、数组的存放的类型只能是一种(基本类型/引用类型),集合存放的类型可以不是一种(不加泛型时添加的类型是Object)。 - 有哪些常用的集合类?选择集合类时应考虑那些方法?
- 举例说明ArrayList 和 Hashtable 的使用方法
- 什么是索引器?索引器的作用是什么?索引器和属性有哪些区别?
索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来bai更为直观,更容易编写。
作用:允许一个对象可以像数组一样使用下标的方式来访问。
索引器一般用在自定义的集合类中,通过使用索引器来操作集合对象就如同使用数组一样简单;而属性可用于任何自定义类,它增强了类的字段成员的灵活性。 - 什么是泛型?泛型在面向对象程序设计中有何意义?
1、泛型是通过“参数化类型”来实现在同一段代码中操作多种数据类型。泛型是一种编程范式,它利用“参数化类型”将类抽象化,从而实现更为灵活的复用。泛型赋予了代码更强的安全性、更好的复用、更高的效率和更清晰的约束。
2、泛型的另一个优点“类型安全”,如果采用泛型,可以较早的检查放入集合中的元素是否是预定的类型,以保证类型安全。 - 简述说明泛型集合List和Dictionary的使用方法
- 程序错误的三种类型
语法错误 逻辑错误 运行时错误。 - 异常的概念
一个优秀的程序员在编写程序时,不仅要关心代码正常的控制流程,同时也要把握好系统随时可能发生的不可预期的事件。它们可能来自系统本身,如内存不够、磁盘出错、网络连接中断、数据库无法访问等;也可能来自用户,如非法输入等,一旦发生这些事件,程序都无法正常运行。所谓异常就是那些能影响程序正常执行的事件,而对这些事件的处理方法称为异常处理。异常处理时必不可少的,它可以防止程序处于非正常状态,并根据不同类型的错误来执行不同的处理方法。
-
事件系统的三大要素是什么?
事件源 监听器 事件处理程序 -
简述过程驱动编程与事件驱动编程有何区别。
-
什么是委托?委托有何特点?
委托是一种动态调用方法的类型,它与类、接口和数组相同,属于引用型。委托是对方法的抽象和封装。
1、委托类似于C++函数指针,但与指针不同的是,委托是完全面向对象的,是安全的数据类型。
2、委托允许将方法作为参数进行传递。
3、委托可用于定义回调方法
4、委托可以把多个方法链接在一起。这样,在事件触发时可同时启动多个事件处理程序。
5、委托签名不需要与方法精确匹配。 -
举例说明显式实例化和匿名实例化的区别。
-
举例说明,如何声明一个事件。
public event EventHandler 事件名 public event EventHandler onClick
- 简述Windows应用程序的事件驱动编程的基本操作步骤
1、定义事件相关信息类
2、在事件发布者类(事件源)中声明事件,并声明一个负责触发事件的方法。
3、在事件接收者类中声明事件产生时调用的方法。
4、在事件接收者类中订阅事件。
5、在事件接收者类中触发事件。 - 假设某个窗体中有一个按钮控件,名字为btnSearch要求:写出其对应的单机事件方法的基本结构。写出如何将该按钮与这个事件方法绑定的C#语句
- Connection对象的什么方法用来打开和关闭数据库连接?
Connection对象的Open() 方法 或者 Close 方法() - Command对象的ExecuteScalar()方法返回什么?
执行查询,并返回查询结果集中第一行的第一列 - 在ADO.NET中,什么对象能够读取数据库查询结果?
Command对象 - Command对象的ExecuteReader()方法返回什么?
返回DataReader对象 - Command对象的ExecuteNonQuery()方法返回什么?
返回不返回行的语句,如UPDATE等,执行后返回受影响的行数。 - .NET数据提供程序包括哪几个核心对象?每个核心对象的作用是什么?
核心对象:Connection 对象 Command 对象
Connection 对象 用于连接数据库,是应用程序访问和使用数据源数据的桥梁
Command 对象 用于封装和执行SQL命令并从数据库中放回结果。



