提高C#编程水平的50个要点 之十二“在定义变量的时候就将其初始化”
来源:互联网 发布:巴特尔在nba数据 编辑:程序博客网 时间:2024/06/05 17:48
C#变量初始化是C#强调安全性的一个例子。简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量。大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待。这就可以防止我们无意中从其他程序遗留下来的内存中获取垃圾值。
C#变量初始化的操作中有两个方法可确保变量在使用前进行了初始化:
1、变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其值就默认是0。
2、方法的局部变量必须在代码中显式初始化,之后才能在语句中使用它们的值。此时,初始化不是在声明该变量时进行的,但编译器会通过方法检查所有可能的路径,如果检测到局部变量在初始化之前就使用了它的值,就会产生错误。
C#的方法与C++的方法相反,在C++中,编译器让程序员确保变量在使用之前进行了初始化,在Visual Basic中,所有的变量都会自动把其值设置为0。
C#变量初始化实例解析:
例如,在C#中不能使用下面的语句:
- public static int Main(){int d;Console.WriteLine(d);
- // Can't do this! Need to initialize d before usereturn 0;}
注意在这段代码中,演示了如何定义Main(),使之返回一个int类型的数据,而不是void。
在编译这些代码时,会得到下面的错误消息:
- Use of unassigned local variable 'd'
考虑下面的语句:
- Something objSomething;
在C++中,上面的代码会在堆栈中创建Something类的一个实例。在C#中,这行代码仅会为Something对象创建一个引用,但这个引用还没有指向任何对象。对该变量调用方法或属性会导致错误。
在C#中实例化一个引用对象需要使用new关键字。如上所述,创建一个引用,使用new关键字把该引用指向存储在堆上的一个对象:
- objSomething = new Something();
- // This creates a Something on the heap
1 0
- 提高C#编程水平的50个要点 之十二“在定义变量的时候就将其初始化”
- 提高C#编程水平的50个要点 之十三“使用静态构造函数来初始化静态成员变量”
- C# 提高C#编程水平的50个要点
- [转]提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 程序员提高C#编程水平的50个要点[转]
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- 提高C#编程水平的50个要点
- cura-engine学习(1)
- 进程间通信之邮件槽
- Qt 查看IP是否在线的两种方法
- 4.Python基本数据结构-集合-创建/与其他类型比较
- Material Design 之 DrawerLayout(滑动菜单)
- 提高C#编程水平的50个要点 之十二“在定义变量的时候就将其初始化”
- Glide核心设计二:缓存管理
- 0301
- springMVC之404篇
- 5.Python基本数据结构-字典-创建/访问/基本操作/格式化输出
- mybatis一级缓存
- HOG可视化 opencv
- Calculating Adam Thielen's worth in free agency
- Android神奇“控件”-----RemoteViews