摘要: 命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。 我们举一个计算机系统中的例子,一个文件夹(目录)中可以包含多个文件夹,每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名。 定义命名空间 命名空间的定 阅读全文
posted @ 2022-04-12 19:21 0bug 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。 接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。 接口使得实现接口的类或结构在形式上保持一致 阅读全文
posted @ 2022-04-12 19:16 0bug 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 您可以重定义或重载 C# 中内置的运算符。因此,程序员也可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。 例如,请看下面的函数: public static Box operat 阅读全文
posted @ 2022-04-12 19:13 0bug 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 多态是同一个行为具有多个不同表现形式或形态的能力。 多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。 多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。 在 C# 中,每个类型都是多态的,因为包括 阅读全文
posted @ 2022-04-12 19:06 0bug 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。 当创建一个类时,程序员不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类,这个新的 阅读全文
posted @ 2022-04-12 18:59 0bug 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 当你定义一个类时,你定义了一个数据类型的蓝图。这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。对象是类的实例。构成类的方法和变量称为类的成员。 类的定义 类的定义是以关键字 class 开始,后跟类的名称。类的主体,包含在一对花括 阅读全文
posted @ 2022-04-12 17:58 0bug 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 声明 enum 变量 声明枚举的一般语法: enum <enum_name> { enumeration list }; 其中, enum_name 指定枚举的类 阅读全文
posted @ 2022-04-12 17:51 0bug 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。 结构体是用来代表一个记录。假设您想跟踪图书馆中书的动态。您可能想跟踪每本书的以下属性: Title Author Subject Book ID 定义结构体 为了定义一个结构 阅读全文
posted @ 2022-04-12 17:45 0bug 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 在 C# 中,您可以使用字符数组来表示字符串,但是,更常见的做法是使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。 创建 String 对象 您可以使用以下方法之一来创建 string 对象: 通过给 String 变量指定一个字符串 通 阅读全文
posted @ 2022-04-12 17:38 0bug 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 声明数组变量并不是声明 number0、number1、...、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numb 阅读全文
posted @ 2022-04-12 17:26 0bug 阅读(125) 评论(0) 推荐(0) 编辑
摘要: C# 单问号 ? 与 双问号 ?? ? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。 int? i = 3; 等同于: Nullable<int> i = new Nullable<int 阅读全文
posted @ 2022-04-12 17:17 0bug 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。每一个 C# 程序至少有一个带有 Main 方法的类。 要使用一个方法,您需要: 定义方法 调用方法 C# 中定义方法 当定义一个方法时,从根本上说是在声明它的结构的元素。在 C# 中,定义方法的语法如下: <Access Specif 阅读全文
posted @ 2022-04-12 16:51 0bug 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。 C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实 阅读全文
posted @ 2022-04-12 16:35 0bug 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了允许更为复杂的执行路径的多种控制结构。 循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式: 循环类型 C# 提供了以下几种循环类 阅读全文
posted @ 2022-04-12 16:32 0bug 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C# 提供了以下类型的判断语句。点击链接查看每个语句的细节。 语句描述 if 语句 一个 if 语句 由一个布尔表 阅读全文
posted @ 2022-04-12 16:30 0bug 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,分类如下: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 本教程将逐一讲解算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符及其他运算符。 算术运算符 下表显示了 C# 支持的所有算术运算符 阅读全文
posted @ 2022-04-12 16:28 0bug 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。 常量可以被当作常规的变量,只是它们的值在定义后不能被修改。 整数常量 整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进 阅读全文
posted @ 2022-04-12 16:21 0bug 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 一个变量只不过是一个供程序操作的存储区的名字。在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作。 我们已经讨论了各种数据类型。C# 中提供的基本的值类型大致可以分为以下几类: 类型举例 整数类型 sbyte、byte、sh 阅读全文
posted @ 2022-04-12 16:04 0bug 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式: 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。 显式类型转换 - 显式类型转换,即强制类型转换 阅读全文
posted @ 2022-04-12 15:59 0bug 阅读(24) 评论(0) 推荐(0) 编辑