1 变量
声明变量语法格式:
作用范围 变量类型 变量名; 例如: private int a;
定义变量遵循的规则:
- 变量名称必须以字母、下划线或者@开头
- 变量的名称只能由字母、数字和下划线组成,不能包含空格、标点符号、运算符等他符号。
- 变量名称不能与C#的关键字名称相同。如using、static、 namespace等
- 变量区分大小写,大写字母与小写字母是不同的变量
变量的初始化:在声明变量时并进行对变量进行赋值初始化,例如:private int num = 5;
关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,如果想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。
在 C# 中,有些关键字在代码的上下文中有特殊的意义,如 get 和 set,这些被称为上下文关键字。下表列出了 C# 中的保留关键字和上下文关键字:
保留关键字 | ||||||
---|---|---|---|---|---|---|
abstract | as | base | bool | break | byte | case |
catch | char | checked | class | const | continue | decimal |
default | delegate | do | double | else | enum | event |
explicit | extern | false | finally | fixed | float | for |
foreach | goto | if | implicit | in | int | interface |
internal | is | lock | long | namespace | new | null |
object | operator | out | override | namespace | params | private |
protected | public | readonly | ref | return | sbyte | sealed |
short | sizeof | stackalloc | static | string | struct | switch |
this | throw | true | try | typeof | uint | ulong |
unchecked | unsafe | ushort | using | virtual | void | while |
上下文关键字 | ||||||
---|---|---|---|---|---|---|
add | alias | ascending | descending | dynamic | from | get |
global | group | into | join | let | orderby | partial |
remove | select | set |
2 常量
在C#中,使用const关键字定义的量叫做常量,例如:const float PI = 3.14f;
使用const关键字同时声明多个同数据类型的常量,常量之间要使用逗号分隔开。
例如:
const int num = 100, max = 12, min = 2;
使用const定义常量时,需要注意以下几点
- const 默认时静态的,不能和static 同时使用
- const必须在字段声明时初始化
- const 只能定义字段和局部变量
- const 只能应用在值类型和string类型,其他引用类型常量只能定义为null。
- 常量在定义完成后就不能在后续代码进行修改
3 数据类型
在 C# 中,变量分为以下几种类型:
- 值类型(Value types)
- 引用类型(Reference types)
- 指针类型(Pointer types)
3.1 值类型
值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。
整数类型
类型 | 描述 | 取值范围 |
---|---|---|
sbyte | 有符号的 8位整数 | -128 到 127 |
byte | 无符号的 8位整数 | 0 到 255 |
short | 有符号16位整数 | -2^15 到 (2^15) -1 |
ushort | 无符号16位整数 | 0 到 (2 ^16) - 1 |
int | 有符号32位整数 | -2^31 到 (2^31) -1 |
uint | 无符号32位整数 | 0 到 (2^32) -1 |
long | 有符号64位整数 | -2^63 到 2^63 |
ulong | 无符号64位整数 | 0 到 2^64 |
char | 无符号16位整数 | 0 到 (2^16) - 1 |
浮点类型
数据类型 | 说明 |
---|---|
float | 32位单精度浮点数 |
double | 64位双精度浮点数 |
decimal | 128 位精确的十进制数 |
在使用float类型声明变量时,须在数值后面添加 f | |
在使用double类型声明变量时,须在数值后面添加 d | |
在使用decimal类型声明变量时,须在数值后面添加 m |
结构类型
结构类型一般指结构体类型,其是一种值类型,用来封装一组相关的变量。
声明一个结构体所使用的关键字:struct
声明的格式:结构修饰符 struct 结构体名 { 结构体内部 }
结构修饰符主要包括public、private、internal、protected
- public:该结构体公有,不受任何访问限制
- private:该结构体只能由本身访问
- internal:只能在当前应用程序中访问
- protected:该结构只能在其本身或者其派生出的结构体中访问。
struct teacher
{
private int id;
private int age;
private string name;
public teacher(int id, int age, string name)
{
this.id = id;
this.age = age;
this.name = name;
}
}
注意:
-
在结构体中不能对成员变量进行初始化
-
结构类型是值类型,内存分配在栈中。
-
结构体类型是不抽象的,且是隐式密封的,因此在结构体声明中不允许使用 abstract 和 sealed。
-
结构体不能声明默认构造函数(没有参数的构造函数)或析构函数,但可以声明有参数的构造函数。
-
结构体可以实现接口,但不能从另一个结构体继承。
-
一般情况下很少使用结构体类型
枚举类型
枚举类型也是一种值类型,用于声明一组常量。所有的枚举类型继承于System.Enum中。
声明定义的格式:修饰符 enum 枚举名 : 枚举基础类型 { }
如果没有显示的声明基础类型,其默认为 int 类型
在枚举类型中,声明的第一个枚举成员的默认值为0,后续的枚举成员的值是将前一个枚举成员的值加 1。
例如:
public enum colorEnum
{
Red,
Yellow,
Green
}
上述代码中,其Red、Yellow、Green值分别为 0 ,1,2;
在枚举成员中允许多个成员具有相同的值,没有显式赋值的枚举成员的值总是前一个枚举成员值加 1。
例如:
public enum colorEnum
{
Red,
Yellow = 1,
Green,
Pink = 1,
Blue
}
上述代码中,Red、Yellow、Green、Pink、Blue的值分别为0,1,2,1,2
枚举类型的转换
基础类型不能隐式地向枚举类型转换,枚举类型也不能隐式地向基础类型转换。
枚举类型和基础类型之间必须使用强制类型转换。
例如:
enum Day
{
Mon, Tue, Wed, Thu, Fri, Sat, Sun
}
static void Main