亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#匿名方法與Delegate類型轉換錯誤分析

2020-01-24 02:15:53
字體:
來源:轉載
供稿:網友

本文實例分析了C#匿名方法與Delegate類型轉換錯誤。分享給大家供大家參考。具體分析如下:

問題描述 

C#2.0出現了匿名方法, 這在一定程度上節省了我們維護代碼上下文的精力, 也不需要思考為某個方法取什么名字比較合適. 在FCL的一些方法中要求傳入一個Delegate類型的參數, 比如Control.Invoke或者Control.BeginInvoke方法:

復制代碼 代碼如下:
public object Invoke(Delegate method);

public IAsyncResult BeginInvoke(Delegate method);

在這種情況下, 如果不使用匿名方法, 則需要在代碼的上面先聲明一個delegate void DoSomething()方法, 然后可以在Invoke方法中再用lambda表達式或者委托實現DoSomething().

復制代碼 代碼如下:
delegate void DoSomething();
private void App()
{
    XXControl.Invoke(new DoSomething(() =>
    {
        //DoSomething的具體操作
    }));
}

這樣做可以是可以, 但使用匿名方法則更好, 最起碼看上去更簡潔.

復制代碼 代碼如下:
private void App()
{
    XXControl.Invoke(delegate
    {
        //DoSomething的具體操作
    });
}

上面的代碼會在編譯的時候出錯: Cannot convert anonymous method to type System.Delegate because it is not a delegate type. 方法要求參數的是一個委托(delegate)類型, 而現在傳遞的只是一個匿名方法. 產生這個錯誤最根本的原因是編譯器在處理匿名方法的時候, 沒法推斷出這個委托的方法返回的是什么類型, 也就不知道返回一個什么樣的委托.

解決方法

要解決上面這個問題, 從根本上來說就是指定這個匿名方法將會返回什么類型的委托, 有幾種方法:

1. 使用MethodInvoke或者Action

復制代碼 代碼如下:
private void App()
{
    XXControl.Invoke((MethodInvoker)delegate()
    {
        //DoSomething的具體操作
    });
}
private void App()
{
    XXControl.Invoke((Action)delegate()
    {
        //DoSomething的具體操作
    });
}

MethodInvoke和Action都是方法返回類型為空的委托.

2. 可以給Control定義一個Invoke的擴展方法

復制代碼 代碼如下:
public static void Invoke(this Control control, Action action)
{
    control.Invoke((Delegate)action);
}

調用的時候則可以這樣調用:

復制代碼 代碼如下:
//使用委托
XXControl.Invoke(delegate { //DoSomething  here});
//使用lambda表達式
XXControl.Invoke(()=>{ //DoSomething here});

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
大胆欧美人体视频| 成人av番号网| 欧美在线视频a| 国内精品视频久久| 国产午夜精品视频免费不卡69堂| 一区二区成人精品| 日韩精品久久久久久久玫瑰园| 久久精品免费播放| 欧美激情欧美狂野欧美精品| 亚洲激情小视频| 91爱爱小视频k| 日韩中文字幕视频在线观看| 国产精品一区二区女厕厕| 欧美国产精品人人做人人爱| 久久久久久美女| 日韩成人中文字幕| 成人午夜两性视频| 色系列之999| 久久99久国产精品黄毛片入口| 亚洲国产精品久久久久久| 欧美电影免费观看大全| 2023亚洲男人天堂| 日本亚洲精品在线观看| 国产精品男人爽免费视频1| 欧美性20hd另类| 成人在线观看视频网站| 97超碰国产精品女人人人爽| 亚洲欧美制服综合另类| 日韩视频免费观看| 91精品久久久久久综合乱菊| 久久久av免费| 成人性生交大片免费观看嘿嘿视频| 日韩电影免费在线观看| 亚洲国产精品yw在线观看| 国产99久久久欧美黑人| 欧美孕妇与黑人孕交| 91在线观看免费观看| 久久久久久国产精品美女| 成人久久久久爱| 国产在线播放不卡| 亚洲精品电影久久久| 欧美夜福利tv在线| 日韩在线观看免费网站| 欧美日本亚洲视频| 久久精品国产亚洲| 亚洲欧美精品在线| 久久精品成人一区二区三区| 亚洲成色777777在线观看影院| 91精品国产自产在线老师啪| 色综合久久中文字幕综合网小说| 日韩欧美国产视频| 欧美成年人网站| 91在线网站视频| 91网站免费看| 欧美日韩国产123| 在线观看不卡av| 少妇精69xxtheporn| 久久亚洲精品中文字幕冲田杏梨| 一个色综合导航| 国产日韩精品在线| 色先锋资源久久综合5566| 久久人人爽人人| 操日韩av在线电影| 久久久久成人网| 久久精品久久久久久国产 免费| 国产精品美女无圣光视频| 日韩免费中文字幕| 国产91色在线|| 91久久精品久久国产性色也91| 91精品91久久久久久| 久久久欧美一区二区| 国产欧美日韩中文| 国产美女精品视频免费观看| 最近2019中文免费高清视频观看www99| 国产视频亚洲视频| 日韩网站在线观看| 亚洲色图美腿丝袜| 午夜精品在线观看| 亚洲理论在线a中文字幕| 欧美激情一区二区三区在线视频观看| 一本色道久久综合狠狠躁篇的优点| 国产视频久久久| 久久久精品国产| 久久久久久综合网天天| 成人免费视频97| 热草久综合在线| 欧美日韩国产黄| 亚洲国产精品福利| 亚洲欧美在线x视频| 久久久国产一区二区| 久久久久国产精品www| 欧美激情免费看| 亚洲精品日韩丝袜精品| 高清在线视频日韩欧美| 曰本色欧美视频在线| 国产精品视频xxx| 欧美激情aaaa| 欧美老女人在线视频| 色婷婷综合成人av| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩欧美福利视频| 日本久久亚洲电影| 日本成人黄色片| 欧美日韩免费在线观看| 精品偷拍一区二区三区在线看| 国产日韩综合一区二区性色av| 一区二区欧美日韩视频| 国产亚洲视频在线| 日韩欧美国产中文字幕| 97国产一区二区精品久久呦| 国产欧美一区二区三区在线| 成人免费视频在线观看超级碰| 久久久亚洲国产天美传媒修理工| 国产91成人video| 一区二区三区高清国产| 国产日产久久高清欧美一区| 国产精品入口夜色视频大尺度| 日韩高清av一区二区三区| 九九热这里只有精品6| 国产精品美女主播| 欧美午夜宅男影院在线观看| 国产精品爱啪在线线免费观看| 精品视频久久久| 日韩电视剧免费观看网站| 欧美一区二区三区精品电影| 精品视频中文字幕| 91中文字幕在线| 国产精品免费看久久久香蕉| 欧美一区二区三区免费观看| 国产精品天天狠天天看| 日本91av在线播放| 亚洲色图第三页| 国精产品一区一区三区有限在线| 伊人久久精品视频| 日本一区二区三区在线播放| 日韩精品在线免费播放| 国产小视频91| 国产欧美精品日韩| 国产成人综合亚洲| 亚洲一区av在线播放| 俺也去精品视频在线观看| 国产原创欧美精品| 国产精品亚洲网站| 久久久久久久久久久人体| 欧美日韩中文在线观看| 久久精品久久久久久| 日本精品一区二区三区在线| 亚洲黄色在线看| 狠狠躁夜夜躁久久躁别揉| 精品在线小视频| 国内免费久久久久久久久久久| 国产亚洲视频在线观看| 美女视频久久黄| 色www亚洲国产张柏芝| 伊是香蕉大人久久| 亚洲一区二区中文字幕| 国产成人综合精品在线| 亚洲2020天天堂在线观看| 色综合男人天堂| 欧美洲成人男女午夜视频| 亚洲黄色www网站| 国产一区二区激情| 亚洲欧美三级在线| 日韩精品在线免费观看视频|