C# 擴充方法

來源:互聯網
上載者:User

標籤:

擴充方法就是一種特殊的靜態方法,不用建立衍生類別和重新編譯原始類型。

例:判斷今天是周末還是工作日

DateTime date = new DateTime(2015, 4, 2);switch (dateTime.DayOfWeek){     case DayOfWeek.Saturday:    case DayOfWeek.Sunday:        return true;    default:        return false;}

  如果要減少代碼的重複,可以寫helper類

public static class DateTimeHelper{    public static bool IsWeekend(DateTime dateTime)    {        switch (dateTime.DayOfWeek)        {            case DayOfWeek.Saturday:            case DayOfWeek.Sunday:                return true;            default:                return false;        }    }}

  調用

if(DateTimeHelper.IsWeekend(date))    WeekendProcessing();else    WeekdayProcessing();

  使用擴充方法:

public static class DateTimeExtensions{    public static bool IsWeekend(this DateTime dateTime)    {        switch (dateTime.DayOfWeek)        {            case DayOfWeek.Saturday:            case DayOfWeek.Sunday:                return true;            default:                return false;        }    }}

  區別在於方法的一個的參數 需要用 this 關鍵字  這個是表明了擴充的類 還需要注意的是 必須是靜態方法 而別不能與現有方法簽名相同

  調用:

DateTime date = new DateTime(2015, 4, 4);if (date.IsWeekend())    WeekendProcessing();else    WeekdayProcessing();

  把IsWeekend()方法記做了 DateTime方法的一部分 這樣用的時候 和方便 也方面積累方法

  最後使用的時候別忘記進去擴充類的命名空間

C# 擴充方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.