C#

【C#】変数のデフォルト値(初期値)について

C#で利用可能な変数のデフォルト値(初期値)について記述します。
前回の記事でC#で利用可能な変数について記述しました。
記事を書いている途中で初心者らしい次の疑問が浮かびました。
「変数を宣言したら、デフォルト値(初期値)は何がはいっているんだろう?」
普通に考えると”0″や”null”が出力されるとは思いますが、直接確認したいと思い検証してみました。

変数のデフォルト値(初期値)を求めるソースコード

using System;

class Program
{
    static void Main(string[] args)
    {
        //初期化せずにフィールドを読み既定値を確認する
        string format = "{0, -8}:{1}", line = "*=---------------------------------------------------=*";
        var a = new DefaultValues();
        Console.WriteLine(line);
        Console.WriteLine("変数名 :デフォルト値");
        Console.WriteLine(line);
        Console.WriteLine(format, "sbyte", a.sh);
        Console.WriteLine(format, "short", a.sh);
        Console.WriteLine(format, "int", a.i);
        Console.WriteLine(format, "long", a.l);
        Console.WriteLine(format, "byte", a.by);
        Console.WriteLine(format, "ushort", a.us);
        Console.WriteLine(format, "uint", a.ui);
        Console.WriteLine(format, "ulong", a.l);
        Console.WriteLine(format, "float", a.f);
        Console.WriteLine(format, "double", a.d);
        Console.WriteLine(format, "decimal", a.de);
        Console.Write(format, "char", (int)a.c);
        Console.WriteLine(" ※nullは表示できないため数値変換し表示");
        Console.Write(format, "string", a.s == null);
        Console.WriteLine(" ※nullは表示できないため比較内容を表示");
        Console.WriteLine(format, "bool", a.b);
        Console.WriteLine(line);
    }
}

class DefaultValues
{
    // 変数設定
    public sbyte sb;
    public short sh;
    public int i;
    public long l;
    public byte by;
    public ushort us;
    public uint ui;
    public ulong ul;
    public float f;
    public double d;
    public decimal de;
    public char c;
    public string s;
    public bool b;
}

出力結果

説明は以上となります。
この記事が誰かの助けになれば幸いです。