single.php

C# で”フィールド《変数》は割り当てられません。常に既定値を使用します” 警告が表示される場合の対処法

C#で “warning CS0649: フィールド《変数》は割り当てられません。常に既定値を使用します” 警告が表示される場合の対処法を備忘録的に投稿します。

[warning CS0168]との違い

プロシージャー内で宣言した変数が使われていない時にビルド時に表示される警告メッセージに似ています。

例えば次のコードをビルドすると

private void func()
{
  bool hogehoge;
}

“warning CS0168: 変数 ‘hogehoge’ は宣言されていますが、使用されていません” と警告が表示されます。

これと、ほぼ同じですが、プロシージャー内ではなくクラス内で宣言すると

internal class example :
{
  private bool hogehoge;

  public example()
  {

  }
}

“warning CS0649: フィールド《変数》は割り当てられません。常に既定値を使用します” 警告になります。

どちらも、変数を宣言しただけで値の代入操作をしていない状態ですが、ビルド後の実行時に、プロシージャー内の場合は変数には値が代入されず、クラス内では既定値が代入されます。(bool 型の変数の場合は false)

また、クラス内で宣言した変数の場合は、以降に変数に値の代入がないため読み取り専用の変数に自動で変更されます。

宣言した変数が使われていないの別の言い方

少し回りくどい内容ですが、”warning CS0649: フィールド《変数》は割り当てられません。常に既定値を使用します” は、宣言した変数がコード内で利用(値の代入操作など)がされていない場合の警告です。

実際に利用されていない変数なので、実行時に影響はありませんが、実際には無駄な変数宣言なので警告された変数を確認する必要があります。

まとめ

C#で”warning CS0649: フィールド《変数》は割り当てられません。常に既定値を使用します” 警告が表示される場合の対処法を書いてみました。

警告メッセージが、少し回りくどい説明になっていますが 宣言した変数が利用されていない(値の代入操作などが無い)状態の場合に表示されます。

後の処理で利用しない無駄な変数の宣言になっているので警告されている間に確認する必要があります。

ビルド時に “warning CS0649: フィールド《変数》は割り当てられません。常に既定値を使用します” 警告が表示される人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です