いろいろ備忘録日記

主に .NET と Python絡みのメモを公開しています。

各型のデフォルト値についてのメモ (default, int, long, float, double)


以下、自分用のメモです。
何故か、忘れる事がめっちゃ多いのでメモ。

    #region DefaultValuesSamples-01
    /// <summary>
    /// 各型のデフォルト値についてのサンプルです。
    /// </summary>
    public class DefaultValuesSamples01 : IExecutable
    {
        class  SampleClass  {}
        struct SampleStruct {}
        
        public void Execute()
        {
            Console.WriteLine("byte   のデフォルト:      {0}",        default(byte));
            Console.WriteLine("char   のデフォルト:      {0}",        default(char) == 0x00);
            Console.WriteLine("short  のデフォルト:      {0}",        default(short));
            Console.WriteLine("ushort のデフォルト:      {0}",        default(ushort));
            Console.WriteLine("int    のデフォルト:      {0}",        default(int));
            Console.WriteLine("uint   のデフォルト:      {0}",        default(uint));
            Console.WriteLine("long   のデフォルト:      {0}",        default(long));
            Console.WriteLine("ulong  のデフォルト:      {0}",        default(ulong));
            Console.WriteLine("float  のデフォルト:      {0}",        default(float));
            Console.WriteLine("double のデフォルト:      {0}",        default(double));
            Console.WriteLine("decimalのデフォルト:      {0}",        default(decimal));
            Console.WriteLine("string のデフォルト:      NULL = {0}", default(string)       == null);
            Console.WriteLine("byte[] のデフォルト:      NULL = {0}", default(byte[])       == null);
            Console.WriteLine("List<string>のデフォルト: NULL = {0}", default(List<string>) == null);
            Console.WriteLine("自前クラスのデフォルト:   NULL = {0}", default(SampleClass)  == null);
            Console.WriteLine("自前構造体のデフォルト:   {0}",        default(SampleStruct));
        }
    }
    #endregion


結果は、以下のようになります。

  byte   のデフォルト:      0
  char   のデフォルト:      True
  short  のデフォルト:      0
  ushort のデフォルト:      0
  int    のデフォルト:      0
  uint   のデフォルト:      0
  long   のデフォルト:      0
  ulong  のデフォルト:      0
  float  のデフォルト:      0
  double のデフォルト:      0
  decimalのデフォルト:      0
  string のデフォルト:      NULL = True
  byte[] のデフォルト:      NULL = True
  Listのデフォルト: NULL = True
  自前クラスのデフォルト:   NULL = True
  自前構造体のデフォルト:   Gsf.Samples.DefaultValuesSample01+SampleStruct


いつも思ってるんだけど、stringの場合はデフォルトでEmpty返してくれたらすごく嬉しいのになー。



================================
過去の記事については、以下のページからご参照下さい。