[英]LINQPad throws NullReferenceException on valid code
我正在閱讀有關C#事件和委托的信息 ,我想將以下代碼復制並粘貼到LINQPad中並運行它:
class Test
{
public event EventHandler MyEvent
{
add
{
Console.WriteLine ("add operation");
}
remove
{
Console.WriteLine ("remove operation");
}
}
static void Main()
{
Test t = new Test();
t.MyEvent += new EventHandler (t.DoNothing);
t.MyEvent -= null;
}
void DoNothing (object sender, EventArgs e)
{
}
}
我在查詢屬性中導入System
名稱空間。
我不知道為什么LINQPad拋出NullReferenceException
:
Message Object reference not set to an instance of an object.
Data Data
InnerException (null)
TargetSite TargetSite
StackTrace at LINQPad.ExecutionModel.ClrQueryRunner.Run()
at LINQPad.ExecutionModel.Server.RunQuery(QueryRunner runner)
HelpLink null
Source LINQPad
HResult -2147467261
如果我在Visual Studio中創建一個項目,則相同的代碼可以很好地編譯,這是我想要避免的。
您需要像這樣將main方法移出類:
void Main()
{
Test t = new Test();
t.MyEvent += new EventHandler (t.DoNothing);
t.MyEvent -= null;
}
class Test
{
public event EventHandler MyEvent
{
add
{
Console.WriteLine ("add operation");
}
remove
{
Console.WriteLine ("remove operation");
}
}
public void DoNothing (object sender, EventArgs e)
{
}
}
這是LinqPad的限制。
干杯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.