C#不同类型的成员变量(字段)的默认值
来源:互联网 发布:什么软件可以免越狱 编辑:程序博客网 时间:2024/06/04 18:33
转自:http://panjunlai.blog.163.com/blog/static/5819030120104207757620/
创建类的一个实例时,在执行构造函数之前,如果你没有给成员变量赋初始值,C#编译器缺省将每一个成员变量初始化为他的默认值。
如果变量是方法的局部变量,编译器就会认为在使用该变量之前,代码必须给它显示的设定一个值。否则会发生“使用了未赋值的局部变量”的错误。
对于其他情况,编译器会在创建变量时,把变量初始化为默认值。
1、对于整型、浮点型、枚举类型(数值型),默认值为0或0.0。
2、字符类型的默认值为\x0000。
3、布尔类型的默认值为false。
4、引用类型的默认值为null。
如果声时变量时,为它指定了初始值(int i=10;),那么这个值就用于初始化该变量了。
虽然C#编译器为每个类型都设置了默认类型,但作为面向对象的设计原则,我们还是需要对变量进行正确的初始化。实际上这也是C#推荐的做法,没有对变量进行初始化会导致编译器发出警告信息。我们不可能为所有成员变量赋初始值,当然就是赋了值,也不一定就满足我们的要求。因为我们在使用时,有可能改变我们的初始值。那么我们就要借助构造函数来初始化我们的成员变量。
// 系统将为未在构造函数赋值的成员变量赋默认值
using System;
public class Dog
{
public string name;
public int age;
public static void Main()
{
Dog myDog = new Dog();
Console.WriteLine("myDog的名字为“{0}”,年龄为{1}。", myDog.name, myDog.age);
}
}
上述程序中,当创建对象myDog时,会调用默认的构造函数。所有字段都会被赋给一个默认的值。
输出结果为:
myDog的名字为“”,年龄为0。
这种特性虽然能够避免编译错误,但是违背了变量的“先赋值、后使用”原则,这些“无害的”默认值很容易产生难以识别的错误,建议尽可能地在构造函数中对所有成员变量赋值。
- C#不同类型的成员变量(字段)的默认值
- C#不同类型的成员变量(字段)的默认值
- C#不同类型的成员变量(字段)的默认值
- C#不同类型的成员变量(字段)的默认值
- 对话框控件不同类型成员变量的绑定。
- final 修饰的成员变量无默认值!
- 成员变量未赋值时的默认值
- Java中“成员变量”的默认值 自备
- C#属性、字段和成员变量的关系区别
- C#属性、字段和成员变量的关系区别
- C++_类_不同类型成员变量的初始化方式
- 不同类型的变量相加
- C# DateTime类型的变量默认值
- C# 字段、属性、成员变量
- Java_语法基础_成员变量的默认值
- Java中的数组和成员变量的默认值
- Java成员变量常用九类数据类型的默认值
- C#不同类型的画笔!
- Oracle 分区建表以及拆分分区
- Android学习笔记进阶14之像素操作
- ORACLE分区表管理的一些笔记
- Ubuntu root
- 用SQL语法创建Oracle表空间及表
- C#不同类型的成员变量(字段)的默认值
- 谷歌adsense作弊的方法
- 学习记录
- 动画效果编程基础--AnimationAndroid
- php安装加速扩展 APC 详解
- Linux shell脚本全面学习 .
- Tegra3 1080p高清播放时电源管理方式和功耗分析
- [实战]3天让Web应用承载拓展1000倍
- 获取所有的插件