91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c#如何實現委托中異常的處理

發布時間:2022-01-15 14:16:13 來源:億速云 閱讀:137 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關c#如何實現委托中異常的處理,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

    基本委托寫法: public delegate double Mathresult(double number);

public class MyMath

{

    public static double mathNumber(double number)

    {

        return number*2;

    }

}

使用:

        Mathresult m=MyMath. mathNumber;

        Console.Write(m(5));

        輸出結果:10

在委托中,系統提供了2種定義好的委托方法; Action和Func.

他們的區別是:Action不能有返回值,Func可以有返回值。

例如:用Func實現上面的方法。

Func<double,double>   Mathresult = MyMath. mathNumber ;

 Console.Write(m(5));

 輸出結果:10

用Action怎么實現呢??Action是不能有返回值的。只進不出。IN

Action<double> Mathresult = MyMath. mathNumber ;

相應的,mathNumber方法就不能有返回值,需要修改為:

public class MyMath

{

    public static double mathNumber(double number)

    {

         Console.Write(number*2);

    }

}

Mathresult (5);

 輸出結果:10

如果想要有多個委托的話,可以使用數組,同時委托也支持+=   -+。

方法Account有2個方法,支出,和查詢

class Account

{

    decimal acc;

    //查詢

    public public decimal Acc{get; private set;}

    public Account(decimal money)  { this.Acc=money; }

    //支出

    public static void Payin(decimal money)

    {

        if(Acc > = money)

        {

            Acc+money;

        }

        else

        {

            throw new Exception("可用金額不足!");

        }

    }

    //查詢余額

    public static void Check(decimal money)

    {

       Console.write("您的余額"+Acc.Tostring());

    }

}

給委托提供這兩個方法:

一、

Action<double>[] action={Account.Payin,Account.Check};

foreach(Acount<double> a in action)

{

    a(100);

    a(200);

}

輸出結果:

您的余額100

您的余額300

二、

Action<double> action=Account.Payin;

                            action+=Account.Check;

action(100);  action(200);

或:

Action<double> action1=Account.Payin;

Action<double> action2=Account.Check;

Action<double> action3=action1+action2;

action(100); action(200);

判斷異常:

 Delegate[] de = action3.GetInvocationList();

 foreach (Action<double> a in de)
                {
                    try
                    {

                        action(100);

                        a(200);

                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }

關于“c#如何實現委托中異常的處理”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青龙| 嘉禾县| 凤庆县| 安远县| 庆元县| 汉寿县| 赤壁市| 昌吉市| 临汾市| 集贤县| 海盐县| 密云县| 石家庄市| 星座| 肥城市| 交城县| 江津市| 镇江市| 绥德县| 赤城县| 陆河县| 凤山市| 建平县| 平顶山市| 龙江县| 博白县| 祁连县| 巨鹿县| 长泰县| 桦川县| 东宁县| 莆田市| 龙岩市| 赤峰市| 南涧| 楚雄市| 道孚县| 邳州市| 建德市| 罗平县| 北安市|