C#笔记(14)可空类型(Nullable)
C# 可空类型(Nullable)C# 单问号 ? 与 双问号 ??? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。 1int? i = 3; 等同于: 123Nullable<int> i = new Nullable<int>(3);int i; //默认值0int? ii; //默认值null ?? 双问号用于判断一个变量在为 null 的时候返回一个指定的值。 接下来我们详细说明。 C# 可空类型(Nullable)C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。 例如,Nullable< Int32 >,读作”可空的 Int32”,可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值。类似的,Nullable< bool > 变量可以被赋值为 true 或...
C#笔记(13)方法
C# 方法一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。每一个 C# 程序至少有一个带有 Main 方法的类。 要使用一个方法,您需要: 定义方法 调用方法 C# 中定义方法当定义一个方法时,从根本上说是在声明它的结构的元素。在 C# 中,定义方法的语法如下: 1234<Access Specifier> <Return Type> <Method Name>(Parameter List){ Method Body} 下面是方法的各个元素: Access Specifier:访问修饰符,这个决定了变量或方法对于另一个类的可见性。 Return type:返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为 void。 Method name:方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。 Parameter list:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺...
C#练习(3)
练习: 定义一个数字,判断这个数是否是奇数 是奇数打印“是奇数”,否则”不是奇数” 要求:if 语句来完成。 提示:奇数的判断:和2取余数不等于0 练习:改写奇数的判断。 创建 IfElseDemo1.cs 判断一个数是否是奇数,是“是奇数”, 否则打印“不是奇数” 要求:使用if..else语句实现。 练习:定义一个人的年龄,根据年龄,判断所属年龄段: 幼年:0-6 少年:7-16 青年:17-27 中年:28-60 老年:60-150 不合法数字() day03作业 周四 1.自由设计编码题 学习了分支语句,请考虑一下:我们生活中哪些情景,现象可以使用if语句来实现. if…else 结构的举出一到两种案例. (尽量做) 如:如果每月工资达到2万,就有钱去谈女朋友了 如果月薪达不到2万,就得努力工作了 if…else if ….else if ..else 形式的请举出一到两种案例如: 星座性别分析器 if嵌套形式的请举出一到两种案例 (选做)如果明天是周末,就去玩否则就去上班;如果明天是周...
C#笔记(10)判断
程序结构: 顺序结构:所谓顺序结构,指的是按照编写程序时的顺序,从上往下载依次执行程序中的代码。 分支结构:程序在运行过程中,根据给定条件的不同,而选择不同的代码语句来执行。 C# 中常用的分支结构分为两种:if 语句构成的分支 switch 语句构成的分支 循环结构:所谓的循环,指的是在特定的场景或条件下,反复执行重复执行同一个动作,直到特定条件不成立,反复执行的动作才会正常结束。 C# 中的循环主要有以下三种:while、do while 、for 。 判断语句C# 提供了以下类型的判断语句。 语句 描述 if 语句 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 if…else 语句 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 嵌套 if 语句 可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 switch 语句 一个 switch 语句允许测试一个变量等于多个值时的情况。 嵌套 switch 语句 您可以在一个 switch 语句内使用另一...
C#笔记(12)访问修饰符
C# 封装封装 被定义为”把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。 C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。 一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示: public:所有对象都可以访问; private:对象本身在对象内部可以访问; protected:只有该类对象及其子类对象可以访问 internal:同一个程序集的对象可以访问; protected internal:访问限于当前程序集或派生自包含类的类型。 范围比较: Pubilc :任何公有成员可以被外部的类访问。 Private :只有同一个类中的函数可以访问它的私有成员。 Protected :该类内部和继承类中可以访问。 internal : 同一个程序集的对象可以访问。 Protected internal :3 和 4 的并集,符合任意一条都可以访问。 1pri...
C#笔记(11)循环
循环C# 提供了以下几种循环类型。 循环类型 描述 while 循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 for/foreach 循环 多次执行一个语句序列,简化管理循环变量的代码。 do…while 循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 嵌套循环 您可以在 while、for 或 do..while 循环内使用一个或多个循环。 while 循环只要给定的条件为真,C# 中的 while 循环语句会重复执行一个目标语句。 语法C# 中 while 循环的语法: 1234while(condition){ statement(s);} 在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。condition 可以是任意的表达式,当为任意非零值时都为真。当条件为真时执行循环。 当条件为假时,程序流将继续执行紧接着循环的下一条语句。 流程图 在这里,while 循环的关键点是循环可能一次都不会执行。当条件被测试且结果为假时...
C#练习(2)
== 使用场景: 判断一个数是否偶数(奇数):这个数和2取余,如果余数为0,证明是偶数 x % 2 == 0 判断是否是奇数: x % 2 != 0 判断一个数 n 是否是另外一个数 m 的倍数即:n % m == 0如: 一个数是否是8的倍数 8 16 24 40n % 8 == 0 判断一个数 n 是否能被 18 整除n % 18 == 0 练习 从键盘输入一个数,判断这个数是否大于10,是否大于等于10, 是否是偶数。 //1.准备一个数 //2.判断 //3.结果 赋值运算符 = 赋值运算,一个数字常用赋值运算符:=: 将等号右侧的内容赋值给等号左侧 123456int i = 1 ; //定义变量i,值为1//完整形式: i = i + 10 //先计算 i+10 的结果,再将赋值给变量i// i 的值就变成了11i += 10 ; //11 练习: 定义一...
C#笔记(9)运算符
C# 运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,分类如下: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 本教程将逐一讲解算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符及其他运算符。 算术运算符下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符 描述 实例 + 把两个操作数相加 A + B 将得到 30 - 从第一个操作数中减去第二个操作数 A - B 将得到 -10 * 把两个操作数相乘 A * B 将得到 200 / 分子除以分母 B / A 将得到 2 % 取模运算符,整除后的余数 B % A 将得到 0 ++ 自增运算符,整数值增加 1 A++ 将得到 11 -- 自减运算符,整数值减少 1 A-- 将得到 9 1234567891011121314151617181920212223242526272829303132333435using System;namespace ...
C#笔记(8)常量
C# 常量常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。 常量可以被当作常规的变量,只是它们的值在定义后不能被修改。 常量初始化常量在声明时必须初始化,一旦定义值就不可以再改变;常量定义时使用 const 关键字修饰;常量定义的基本语法:访问修饰符 const 常量类型 常量名 = 具体值实例 123class Calendar1{public const int months = 12;} 整数常量整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。 整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。 这里有一些整数常量的实例: 12345212 /* 合法 */215u /* 合法 */0xFeeL /* 合法 */078 /* 非法...
C#笔记(7)变量
C# 变量 一个变量只不过是一个供程序操作的存储区的名字。 在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。 范围内的值可以存储在内存中,可以对变量进行一系列操作。 在内存中开辟的一块存储空间。 用于存储程序中需要的各种类型的数据。 例如,以下定义了三个变量,变量名为a,b,c。 对于变量,我们需要关注以下以下几个方面: 变量的声明:用特定的语法声明一个变量,让运行环境为其自动分配空间; 变量的命名:变量需要有个见名知意的名字,而且要符合C#的语言规范; 变量的初始化:变量声明后,要为其赋一个确定的初值,有了初值后才能使用该方法; 变量的访问:可以对变量中的数据进行存取作,但是要操作的数据要和变量的类型保持一致; C# 中提供的基本的值类型大致可以分为以下几类: 类型 举例 整数类型 sbyte、byte、short、ushort、int、uint、long、ulong 和 char 浮点型 float 和 double 十进制类型 decimal 布尔类型 true 或 false 值,指定的值 空类型 可为空值的数据...
C#笔记(6)类型转换
C# 类型转换类型转换从根本上说是类型铸造,或者说是把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式: 隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。 显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。 值类型间的转换在C#的运算中,要求各被运算单元的数据类型是一致的,且运算结果将与被运算单元保持一致。例如:10/4 的运算中,被运算的两个数字10与4都属于int 类型,则运算结果也应该是int类型的,所以运算结果是2,而不是2.5。实际开发过程中,对数据的单纯操作可能无法满足现有的需求,这时就需在不同数据类型之间进行相应的转换。C# 提供了2种转换方式: 自动类型转换(又叫:隐式类型转换 或 向上转型) 强制类型转换(又叫:显示类型转换 或 向下转型) 自动类型转换自动类型转换,又叫做:隐式转型 或 向上转型。是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。自动转型常见的场景: 当被运...
C#笔记(5)数据类型
C# 数据类型在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types)注:后面我们看到的这些数据类型,实际上是简化符号,真正意义上这些数据类型在.NET Framework 中有具体的对应类,如:int 对应的是System.Int32 值类型(Value types)值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类型时,系统分配内存来存储值。直接存储值,在栈上存储其值。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。 整数(8种): 类型 CTS 占据空间 说明 数据范围 默认值 sbyte System.Sbyte 1 Byte 8位有符号的整数 -12...






