2021年12月06日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!total 2120 count

default: その型の既定の初期値はなに?

Written By: 川俣 晶連絡先

この章のテーマ §

前提知識 §

Console.WriteLineメソッド, 変数の基礎, 条件演算子, int型, 配列, null, 列挙型, 値型と参照型

解説 §

 C#のデータには全て型が存在します。それらの型には既定値(デフォルト値)が存在します。

 既定値は値を指定せずに変数などが確保されたときに自動的に入る値です。

 単純な変数は値を指定せずに使用することはできないため、既定値を意識することは少ないと思いますが、配列の要素などは既定値で初期化されます。たとえば、new int[1]という式で作られた配列の要素に既定値の0が入っています。

 既定値は、一般的に値型では0、参照型ではnullです。bool型はfalse, 列挙型では0に対応する値になります。int型は値型なので0、string型は参照型なのでnullとなります。

 既定値を参照するには、defaultキーワードを使ってdefult(型名)と書きます。たとえば、int型の既定値はdefault(int)として取得できます。文脈から型が明確に分かる時は、型名は省略してdefaultのみで記述できます。サンプルソースのif (a == default)はそうやって型名を省略しています。

罠の数々 §

  • defaultキーワードの使い道は複数あります。ここで説明しているのはその一つです。switch文で使用するdefaultキーワードは、switch文で解説します
  • 既定値で初期化されることを意識してプログラムを設計すると、初期化のコードをシンプルにできることもある

参考リンク §

default (C# リファレンス)

既定値式 (C# リファレンス)

サンプルソース: kw_default §

int a = 1;

int[] b = new int[1];

int c = default(int);

if (a == default)

    Console.WriteLine("aはデフォルト値だよ。");

else

    Console.WriteLine("aはデフォルト値じゃないよ。");

if (b[0] == default)

    Console.WriteLine("b[0]はデフォルト値だよ。");

else

    Console.WriteLine("b[0]はデフォルト値じゃないよ。");

if (c == default)

    Console.WriteLine("cはデフォルト値だよ。");

else

    Console.WriteLine("cはデフォルト値じゃないよ。");

実行結果 §

aはデフォルト値じゃないよ。

b[0]はデフォルト値だよ。

cはデフォルト値だよ。

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 int型の既定値は0である。int a = 1-1;と書いた時、変数aの値は既定値だろうか? それとも違うのだろうか?

  1. 既定値である。1-1の結果は0だから、既定値なる
  2. 既定値にならない。1-1のどこにも0などとは書いていない

[[解答]]

Facebook

キーワード【 川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!
【new_C#入門・全キーワード明快解説!】の次のコンテンツ
2021年
12月
07日
列挙型の基礎: 名前を並べて型を定義しよう
3days 0 count
total 1077 count
【new_C#入門・全キーワード明快解説!】の前のコンテンツ
2021年
12月
05日
break/continue: ループの流れを自由に支配
3days 0 count
total 928 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20211206104828
サイトの表紙【new_C#入門・全キーワード明快解説!】の表紙【new_C#入門・全キーワード明快解説!】のコンテンツ全リスト 【new_C#入門・全キーワード明快解説!】の入手全リスト 【new_C#入門・全キーワード明快解説!】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.