本帖最后由 Mayi 于 2012-12-16 22:37 编辑
一.变量:
在C#中声明一个变量用如下格式: 例如声明一个为 i 的int类型变量,则可以如下: 但是声明了这个变量( i )后,编译器不允许在表达式中使用这个变量,否则会报如下错误: 这是因为没有初始化变量 i ,给变量赋值(初始化)可以用 “ = ”,例如: 还可以在声明的时候就给变量初始化,例如: 还可以在一行中声明多个变量,例如: 但是要注意一点,若是在同一行中声明多个变量,则所有变量必须是同一数据类型,不能是下面这样:- int x = 15,string s = "ssss"; //错误
复制代码 关于变量的初始化,须注意一下两点:
1. 变量是类或者结构中的字段,因为在创建类或者结构时若没有初始化,则会给其一个初始值。
2. 若声明方法的局部变量,则必须显式声明,之后方能在其后的表达式中使用该值,例如:- static void M1()
- {
- int id;
- Console.WriteLine(d); //在使用之前必须初始化
- }
复制代码 如若确定某个变量的数据类型,则可以使用类型推断,如声明一个int类型: 或者 在编译后,二者是等价的,后者虽没有声明为int类型,然根据其赋值,可以推断为int类型,当然可以用:- Console.WriteLine(i.GetType());
复制代码 将其数据类型向控制台打印出来,看是不是int类型。
关于类型推断,必须注意以下几点:
1. 所谓的类型推断就是根据给变量赋的值推断其数据类型,所以必须在声明的时候就给其初始化,否则会报错 2.不能给类型推断变量赋没有初始化的对象,否则会报和上面一样的错,例如: 在声明了一个变量后,在能访问该变量的区域就叫变量的作用域,一般有如下规则:
1. 局部变量在声明该变量语句快的左花括号和右花括号之间。
2. 在for,while等语句块中声明的变量其作用域在该语句块内,若两个名字相同的变量作用域有交集的话就会报错,若作用域木有交集,则可以声明多个名字相同的变量。- static void M1()
- {
- int i = 10;//作用在整个M1中
- for (int j = 0; j < 10;j++ )// i 作用在整个循环中
- {
- Console.WriteLine("{0}{1}",i,j);
- }
- }
复制代码 但有一点要注意,C#中把在类级别上声明的变量看作字段,而把在方法中声明的变量看作局部变量,若局部变量和字段有冲突(同名),局部变量会隐藏字段,有如下代码:- class Program
- {
- static int i = 10;
- static void Main(string[] args)
- {
- int i = 50;
- Console.WriteLine(i);
- Console.WriteLine(Program.i);
复制代码 第一个会打印出50,而第二个会打印出10,为什么呢?因为Main中的局部变量隐藏了字段i,此时可以用 类名.字段名访问类级的变量(字段)。
二.常量:
看字面意思,常量就是值不会变化的变量,其声明格式如下: 使用常量须注意:
1. 常量必须在声明的时候初始化,初始化后其值就不能再改变。
2. 不能把变量的值用于初始化常量,(区别去只读字段)。
3. 常量是static的,但在声明的时候不允许有static修饰符
其他C#基础看这里 |
|