C#リファレンスによると
「null キーワードは、オブジェクトを参照しない null 参照を表すリテラルです。null は参照型変数のデフォルト値です」
次のアプリ コードのコメントe=null
行 (記事「C# でのイベントとデリゲートの違い」から抜粋) でコンパイル エラーが発生 することに驚きました。
Use of unassigned local variable 'e'
コメントせずにコンパイルして実行します。
分からない:
- 変数はどこで
e
使用されますか? - 愚か者が変数をに割り当てずにアプリを強制的に実行することは可能
null
ですか?
へ
using System;
class Program
{
static void Main(string[] args)
{
DelegatesAndEvents obj = new DelegatesAndEvents();
obj.Execute();
}
}
public class DelegatesAndEvents
{
public event EventHandler MyEvent;
internal void Execute()
{
EventArgs e;
//Commenting the next line results in compilation error
//Error 1 Use of unassigned local variable 'e'
e = null;
int sender = 15;
MyEvent += MyMethod;
MyEvent += MyMethod2;
MyEvent(sender, e);
}
void MyMethod(object sender, EventArgs e)
{
Console.WriteLine(sender);
}
void MyMethod2(object sender, EventArgs e)
{
Console.WriteLine(sender);
Console.ReadLine();
}
}
更新(またはすべての回答へのコメント):
だから、私はそれを知らなかった、一種のヌルがあります-割り当てられているものと割り当てられていないもの...面白い...
チェックのために、おそらく異なるタイプを持つ必要があり
ます。
typeof(assigned_null) の場合は、それを行います。