C# 变量
变量 是供程序操作的存储区的名字
variable [ˈveriəbl] 记忆 vari 变化 + able 能 的 易变的
变量使用步骤
.声明变量 根据类型分配空间
.初始化变量 将数据存入内存空间
.使用变量 取出数据使用
变量命名规则
由 字母或下划线 开头
而且由 数字 字母或下划线 组成
变量基本要求
.简短且清楚表明作用
.首字母小写 单词首字母大写
.不能和系统的关键字冲突 即不能相同
.尽量不用汉字做变量名
如 money score name sex myScore 等正确的
而 int static = 110 //不正确 因为 static 是csharp的系统保留字 即 关键字
C#变量都有特定的类型,类型决定变量的内存大小和布局。
C#基本的值类型分类
类型 | 举例 |
---|---|
整数类型 | sbyte、byte、short、ushort、int、uint、long、ulong 和 char |
浮点型 | float 和 double |
十进制类型 | decimal |
布尔类型 | true 或 false 值,指定的值 |
空类型 | 可为空值的数据类型 |
C#定义其他值类型的变量,如 enum,允许定义引用类型变量,比如 class ,本章只研究基本变量类型
C# 中的变量定义
C# 变量定义的语法
<data_type> <variable_list>;
data_type 必须是有效的 C# 数据类型,char、int、float、double 或用户自定义的数据类型。
variable_list 由一个或多个用逗号分隔的标识符组成
有效的变量定义
int i, j, k; char c, ch; float f, salary; double d;
可在变量定义时初始化
int i = 100;
C# 变量初始化
变量通过在等号后跟一个常量表达式进行初始化(赋值)
初始化的形式
variable_name = value;
变量可在声明时被初始化(指定一个初始值)
初始化由一个等号后跟一个常量表达式组成
<data_type> <variable_name> = value;
int d = 3, f = 5; /* 初始化 d 和 f. */ byte z = 22; /* 初始化 z. */ double pi = 3.14159; /* 声明 pi 的近似值 */ char x = 'x'; /* 变量 x 的值为 'x' */
正确初始化变量是良好的编程习惯,否则有时程序产生意想不到的结果
用各种类型的变量
实例
{
class Program
{
static void Main(string[] args)
{
short a;
int b ;
double c;
/* 实际初始化 */
a = 10;
b = 20;
c = a + b;
Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
Console.ReadLine();
}
}
}
产生结果
a = 10, b = 20, c = 30
接受用户的值
System 命名空间中的 Console 类提供函数 ReadLine(),接收来自用户的输入,并存储到变量中int num; num = Convert.ToInt32(Console.ReadLine());
Convert.ToInt32() 把用户输入的数据转换为 int 数据类型,
Console.ReadLine() 只接受字符串格式的数据
C# 中的 Lvalues 和 Rvalues
C# 两种表达式
lvalue:lvalue 表达式出现在赋值语句的左边或右边
rvalue:rvalue 表达式出现在赋值语句的右边,不能出现在赋值语句的左边
变量是 lvalue 的,可以出现在赋值语句的左边。
数值是 rvalue 的,不能被赋值,不能出现在赋值语句的左边。
有效的语句
int g = 20;
无效的语句会产生编译时错误
10 = 20;
文人墨客
方法的局部变量必须在代码中显式初始化,之后才能在语句中使用它们的值。此时,初始化不是在声明该变量时进行的,但编译器会通过方法检查所有可能的路径,如果检测到局部变量在初始化之前就使用了它的值,就会产生错误。
例如:
在这段代码中,演示了如何定义 Main(),使之返回一个 int 类型的数据,而不是 void。但在编译这些代码时,会得到下面的错误消息:
正确的做法是初始化它 int d = 0 或者其他值。
文人墨客
关于静态变量
在 C# 中没有全局变量的概念,所有变量必须由该类的实例进行操作,这样做提升了安全性,但是在某些情况下却显得力不从心。
因此,我们在保存一些类的公共信息时,就会使用静态变量。
在变量之前加上 static 关键字,即可声明为静态变量。
文人墨客
不同类型变量进行运算的问题:
上面这种编程方法是错误的,会出现错误提示:
举例说明,当一个精度高的数据类型与一个精度低的数据类型进行运算时,定义运算结果的变量类型必须与精度最高的变量类型相同。这是为了防止在运算过程中造成数据丢失。
下面是正确代码:
能输出运算结果: