当前位置: 代码迷 >> 综合 >> C# 基础理论
  详细解决方案

C# 基础理论

热度:75   发布时间:2023-11-22 20:06:41.0

01 - 选择题和填空题

1、C#是一种运行在 .NET Framework平台之上的高级程序设计语言。
.net framework 有两大组成部分: 公共语言运行时CLR 和 .NET 框架类库 FCL

2、进行.NET程序开发的最基本环境是: .net framework 和 代码编辑工具 (例如:记事本)。

3、程序调试过程中常见的错误类型有三种: 语法错误、逻辑错误、运行时错误

4、在C#程序中, Main() 方法是程序调试和运行的入口,注意,首字母必须大写。

5、C#中的数据类型可以分为 值类型 和 引用类型 两大类,值类型存储在 栈 内存中,引用类型存储在 堆 内存中。常见的值类型有:bool、char、byte、int、float、double、decimal、struct、enum;常见的引用类型有:object、string、class、array。

6、程序运行时,数据存储所需要的内存空间由 数据类型 来决定。

7、 foreach 语句用于遍历访问整个集合或数组,并针对各元素执行内嵌语句。要求理解并
掌握 foreach 语句的用法。

8、
C#语言的异常处理语法形式是:
Try { … }
Catch (异常类型 标识符){ … }
Finally { … }
如果执行try语句块出现异常,则转向相应的catch语句块,执行完catch语句块后再去执行finally语句块。finally语句块主要用来 释放资源 ,它总是在离开try语句块后执行的,而且finally语句块中程序是必须执行的。

9、 数组 是一种有序的、能够存储多个相同类型变量的集合。在C#中,通过 数组名 和 数组元素 的下标来引用数组的元素。

10、在C#中,通过 new 运算符创建数据并将数组元素初始化。如果要声明一个整形数组arry,数组有3个元素,分别是:1、2、3,其语法形式有下面4种:
<1>int[] arry = new int[3]{1,2,3};
<2>int[] arry = new int[]{1,2,3};
<3>int[] arry = {1,2,3};
<4>int[] arry;
arry = new int[]{1,2,3};

11、 Arryalist (数组列)类位于System.Collections命名空间下,它可以 地添加和删除元素。与数组相比, Arraylist 类有下面的一些特点: 数组 量是固定的,而 Arryalist 的容量可以根据需要自动扩充; Arraylist 提供添加、删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素值;ArrayList提供只读和固定大小包装返回到集合的方法,而数组不提供; Arraylist 只能是一维形式,数组却是可以是多维的。

12、掌握ArrayList类的常用方法。

13、 枚举类型 是一种轻量级的值类型,用来表达一组特定的值的集合行为。在枚举中的每个成员实际上是一个 符号常数 。

14、 string 对象是只读的,一旦创建了该对象,就不能修改它的值。有些方法表面上看来能够修改String对象,但实际上他们返回的是,根据所调方法修改而创建新的String对象。

15、掌握String类中有关字符串的常用方法。

16、面向对象编程中,大多数都是以 类 作为 数据 封装的基本单位。从编程语言的角度看,类就是一种 数据结构 ,它定义了 数据 和 操作这些数据 的代码。

17、默认情况下, 类 的访问修饰符是internal,类成员的访问修饰符是 private 。

18、在同一个类中,可以定义多个名称相同,但参数不同的方法,这称为 方法重载 。

19、 构造 函数是用来在创建对象时进行初始化操作的特殊方法。构造函数的命名必须和 类名 完全相同;每个类至少有一个 构造 函数;一个类可以有多个 构造 函数 重载 ; 构造 函数不包含任何返回值,也不能用void来修饰。

20、 析构 函数是用于执行清除操作的特殊方法。析构函数的命名必须与 类名 相同,为了区分 构造 函数,前面加“ ~ ”;一个类只能有一个 析构 函数;析构函数不能 重载 ; 析构 函数 不能 (能、不能)写返回类型, 不能 (能、不能)带参数;析构函数不能由程序显示地调用,而由 系统释放对象 时自动调用。

21、 静态 成员,是使用访问修饰符static定义的类成员,包含 静态字段 和 静态方法 。用于解决类的所有对象 数据共享 的问题。静态成员属于整个类所有,而 成员属于对象。在类体外引用静态成员,应使用: 类名.静态公有成员 。

22、在C#语言中, 属性 可以把字段域和访问它们的方法相结合,使类能够以一种公开的方法获取和设置值,同时 隐藏实现 的代码。

23、面向对象的三大特征: 封装,继承,多态 。

24、 派生 类可以访问基类的非private成员,即public和protected成员。其中,protected访问修饰符表示该方法只 可以 (可以、不可以)在它的类内部或派生类中被访问。

25、当派生类有方法和基类的方法出现名称相同的情况下,基类的方法将会被 隐藏 。

26、在默认情况下,C#中的方法都是 非虚拟 的,不能 重写 ,要重写就必须显式地声明为virtual。

27、使用override进行 方法重写 时要注意:被重写的方法必须是virtual、abstract或override;子类重写的方法必须和父类的虚方法的原型完全相同;override不能改变基类虚方法的访问权限;可以通过base调用继承的基类中的虚方法。

28、多态性分两种: 编译 时的多态性和 运行 时的多态性。编译时的多态性是通过方法 重写 实现的;运行时的多态性是通过方法 重载 来实现的。

29、 抽象 类是一种特殊的基类,它并不与具体的事物相联系,只能作为其他类的基类,不能被实例化,只能被继承。对于抽象类,在派生类中不能直接调用基类的成员。抽象成员只能包含在抽象类里面。

窗体

30、 窗体 是Windows应用程序的基本单元。 Form 类是所有窗体类的 基 类。设置窗体基本的组成元素,如图标、标题、位置、背景等,既可以通过窗体的 属性面板 来完成,也可以通过 代码 实现。

31、当窗体被首次显示时,将发生 load (加载)事件;在窗体上按下然后释放一个鼠标按钮时,会触发 Click (鼠击)事件;在窗口正要关闭但还没有关闭之前,会触发 formClosing(form关闭)事件;当窗体被用户关闭时则发生 Closed (关闭)事件。

32、Control(控制)类定义了控件类的共同 属性 、 方法 和 事件 。

33、 lable (标签)控件主要用于显示不能编辑的文本,标识窗体上的对象。

34、用户单击 Buttion (按钮)控件时会触发Click事件。

35、 TextBox (文本框)控件用于获取用户的输入数据或者显示文本,可以显示多行,也可以设置为只读控件,对于敏感信息,可以将文本设置成密码字符。

36、掌握 listBox (列表)控件的列表项添加、插入、删除的方法。

37、 combobox (组合框)控件结合了TextBox控件和ListBox控件的功能,用于在下拉组合框中显示数据。

38、 Numericupdown (数值选择)控件是一个显示和输入数值的控件,通过其Value(价值)属性,可以获取控件中显示的数值。

39、 ridoButtion (单选按钮)控件为用户提供由2个或多个互斥选项组成的选项集,通过其Checked属性的值来判断单选按钮是否被选中,当该控件的Checked属性发生变化时,会触发CheckedChanged事件。

40、当 checkbox (复选框)控件的CheckState(检查状态)属性发生变化时,就会触发CheckedStateChanged事件。

41、 messagebox (消息)类是封装消息对话框,该类只提供一个方法Show(),用来把消息对话框显示出来。此方法提供了 21 个不同的重载版本,可以根据自己的需要设置不同风格的消息对话框。

42、用户要浏览或选择要打开的文件,可以使用选择文件的 openfiledialog (打开文件对话框)组件; savefiledialog (保存文件对话框)组件则显示一个预先配置的对话框,可以使用该对话框将文件保存到指定位置。

43、 FONTdialog (字体对话框)组件中的颜色选项要通过设置ShowColor属性才会显示出来,而Font属性则是用来获取或设置选定的字体。

44、 picturebox (图片)控件是用于显示图像的Windows图片框控件,其用来显示图片的Image属性是Image类型的。

45、掌握Image类中两个常用的方法。

46、 imagelist (影像)控件用于存储图形资源,实际上相当于一个图片集,将多个图片存储到图片集中,每个单独的图像可以通过其索引值或其键值来访问。

47、 richtextbox (多格式文本框)控件用于显示、输入和操作带有格式的文本,允许用户输入和编辑文本的同时,进行更高级的格式处理。

数据库

48、 ado.net 是用户的应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构。其用于访问和操作数据的两个主要组件是: .net framework数据提供程序 和 dataset 。

49、ADO.NET主要有 5 个核心对象:Connection(连接)对象、Command(命令)对象、DataReader对象、DataSet对象、DataAdapter(数据适配器)对象。 dataset 对象将数据库中的数据复制一份放到了本地的内存,相当于在内存中创建了一个小型关系数据库。

50、所有 数据库访问 操作都是从建立数据库连接开始的,在打开数据库之前,必须先设置好连接字符串,然后调用open方法打开连接,然后便可对数据库进行访问了。

51、 连接 字符串由分号隔开的名称和值组成,它告诉ADO.NET数据源在哪里,需要什么样的数据格式、提供什么样的访问信任级别以及其他任何包括连接的相关信息。

52、使用 Connection 对象与数据源建立连接后,可用 command 对象对数据源执行增、删、查、改等操作,操作的实现方式可以是使用SQL语句,也可以是使用存储过程。

53、掌握Command对象的三个属性: Connection 属性、 commandtext (命令文本)属性、 commandtype (命令类型)属性。掌握Command对象的三个方法:
<1> executenotqoery () (执行无法查询):用于执行非SELECT命令,返回命令所影响的行数。
<2> ExecuteScalar () 【死给了】(执行值): 用于执行SELECT查询命令,返回第一行第一列的值。
<3> ExecuteRead() (执行读取): 执行SELECT查询命令,并返回一个DataReader对象。

54、 dATAset 对象是一个简单的数据集,只允许以 只读 、 顺向 的方式查看所存数据,该对象不能直接使用构造函数实例化,必须通过Command对象的 ExecuteRead() 方法来生成。如果要获取当前记录的下一行数据,可以调用 read() 方法,当读取到集合中的最后一行数据时,Read()方法返回false。

55、 dataadapter 对象是一种用来充当DataSet对象与 实际数据 之间桥梁的对象,专门为DataSet服务。DataSet是一个非连接对象,与数据源无关,而DataAdapter则负责填充它。通过DataAdapter对象的 fill() 方法填充DataSet;使用 update() 方法,可以将DataSet中修改过的数据及时地更新到数据库中。

56、 datagridview (数据网格视图)数据表格控件,可以显示和编辑来自多种不同类型的数据源的表格数据。将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需要设置DataSource属性即可。

57、定义 接口 使用interface(接口)关键字,接口中定义的成员都是公开的,因此在实现接口的时候,无论是结构还是类,必须以公共成员来实现接口的成员,而且必须实现接口的所有成员。

58、 抽象 类的成员定义是带有访问修饰符的,而 接口 不带访问修饰符,因为接口中所有的成员都是公开的,没必要添加访问修饰符。抽象类中可以包含非抽象成员和构造函数,接口不能包含具备实现代码的成员,也不包含构造函数,因为抽象类是类的一种,而接口不是类。

59、 委托 是一种在形式上与方法签名相似的类型。委托是一种类型,可以独立声明为变量,再直接把与委托匹配的方法赋值给委托类型的变量。

60、一个委托类型的实例可以 与多个方法关联 ,委托之间可以进行相加和相减运算,对委托链进行管理。委托可以让方法作为 参数 传递给其他方法。