• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#不同类型的成员变量(字段)的默认值介绍

C#不同类型的成员变量(字段)的默认值介绍

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#字段,c#字段和属性的区别,c#封装字段,c#字段是什么,c#中属性和字段的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

创建类的一个实例时,在执行构造函数之前,如果你没有给成员变量赋初始值,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);
    }
}
</div>
上述程序中,当创建对象myDog时,会调用默认的构造函数。所有字段都会被赋给一个默认的值。
输出结果为:
myDog的名字为“”,年龄为0。

这种特性虽然能够避免编译错误,但是违背了变量的“先赋值、后使用”原则,这些“无害的”默认值很容易产生难以识别的错误,建议尽可能地在构造函数中对所有成员变量赋值。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#两个相同属性的类赋值方法
  • C#实现利用反射简化给类字段赋值的方法
  • C#不同类型的成员变量(字段)的默认值介绍

相关文章

  • 2017-05-28C#飞行棋小程序设计代码
  • 2017-05-28C#提高编程能力的50个要点总结
  • 2017-05-28初步认识C#中的Lambda表达式和匿名方法
  • 2017-05-28在C#里面给PPT文档添加注释的实现代码
  • 2017-05-28C#判断某个软件是否已安装实现代码分享
  • 2017-05-28C#中string.Empty和null的区别详解
  • 2017-05-28理解C#中参数的值和引用以及传递结构和类引用的区别
  • 2017-05-28c# mutex互斥量的深入解析
  • 2017-05-28C#中调用VB中Inputbox类的实现方法
  • 2017-05-28C#使用timer定时在屏幕上输出信息的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • npoi2.0将datatable对象转换为excel2007示例
    • C# Fiddler插件实现网站离线浏览功能
    • C# datatable 不能通过已删除的行访问该行的信息处理方法
    • VS2012 程序打包部署图文详解
    • C#使用正则表达式抓取网站信息示例
    • C#实现绘制面形图表的方法详解
    • c#实现摄像头拍照功能示例
    • c#测试反射性能示例
    • C#中调用Servlet示例
    • C#通过yield实现数组全排列的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有