C#分歧類型的成員變量(字段)的默許值引見。本站提示廣大學習愛好者:(C#分歧類型的成員變量(字段)的默許值引見)文章只能為提供參考,不一定能成為您想要的結果。以下是C#分歧類型的成員變量(字段)的默許值引見正文
創立類的一個實例時,在履行結構函數之前,假如你沒有給成員變量賦初始值,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。
這類特征固然可以或許防止編譯毛病,然則違反了變量的“先賦值、後應用”准繩,這些“有害的”默許值很輕易發生難以辨認的毛病,建議盡量地在結構函數中對一切成員變量賦值。