中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

金溪县| 保定市| 蓬安县| 盈江县| 定西市| 合水县| 咸阳市| 鸡泽县| 宜良县| 靖西县| 许昌市| 文水县| 肃北| 美姑县| 耒阳市| 兴化市| 西安市| 黄冈市| 左权县| 井冈山市| 买车| 霍林郭勒市| 华阴市| 河东区| 乌拉特前旗| 桐柏县| 卢氏县| 洛宁县| 岳阳县| 新乡市| 郎溪县| 林口县| 江阴市| 双江| 米易县| 洛阳市| 贡山| 中江县| 农安县| 共和县| 定州市|