簡體   English   中英

為什么我不能在功能級別聲明代理?

[英]Why I can`t declare a Delegate at function level?

對不起,如果這個問題過於簡單或容易。

我剛開始使用C#學習代表。 當我試圖在函數內聲明一個時,我得到了設計時錯誤,但是當我在類級別聲明相同的Delegate時,它工作正常。 為什么?

如果這是代碼: delegate void Test();

AFAIK,聲明一個這樣的代表(在C#中,我假設是你正在使用的語言)聲明一個新類型。 正如您無法在方法中聲明類,結構或接口一樣,您也無法聲明此類型。

編輯:如果您只是學習代理,並且語言確實是c#,請考慮使用Func模板化委托! 它將使您免於在任何地方聲明。

http://msdn.microsoft.com/en-us/library/bb549151.aspx

在函數內定義委托主要是在函數內聲明一個函數。 委托的意圖是在函數/方法之間傳遞它們,因此它們僅在類級別聲明時才有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM