a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C#不同類型的成員變量(字段)的默認值介紹

2020-01-24 02:51:26
字體:
來源:轉載
供稿:網友

創建類的一個實例時,在執行構造函數之前,如果你沒有給成員變量賦初始值,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。

這種特性雖然能夠避免編譯錯誤,但是違背了變量的“先賦值、后使用”原則,這些“無害的”默認值很容易產生難以識別的錯誤,建議盡可能地在構造函數中對所有成員變量賦值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本黄色一级片免费看 | 欧美一区二区在线观看 | 麻豆精品一区二区 | 三级电影网址 | 操视频网站 | 欧美精品二区 | 97视频在线 | 国产精品久久久久久久午夜片 | 欧美一区二区视频 | 曰本人做爰大片免费观看 | 国产精品久久久久久久久免费 | 国产欧美一区二区 | 日韩av一区在线观看 | 日韩中文字幕国产 | 99久久精品免费看国产免费粉嫩 | 久久久一 | 欧美国产精品一区 | 欧美日韩一二 | 久久精品亚洲精品 | 狠狠操综合网 | 精品色| 久久com | 国产精品www | 99热在线免费观看 | 国产天堂一区二区三区 | 日韩在线中文 | 91亚洲高清 | av免费在线观看网站 | 国产精品久久av | 久久精品免费观看 | 日韩一区二区三区在线 | 国产激情| 亚洲黄色高清视频 | 欧美日韩最新 | 日韩色图在线观看 | 国产成人毛片 | 欧美在线观看一区 | 久久久久久久久久久一区二区 | 欧美性猛交久久久乱大交小说 | 国产精品久久久久久久久久免费看 | 一本一道久久a久久精品综合蜜臀 |