407

Visual Studio C# 擴充方法
Visual Studio C# new 出一個 class 後,可透過 ‘.’ 來呼叫其底下的 function 來使用。然而若該 class 內的 function 沒有你需要的,而你又拿不到 source code 來修改,是否有其他方法可以增加進去呢?

如果該 class 內的方法沒有自己需要的,C# 提供了一種透過靜態方法當作擴充方法來假裝是該 class 內本身的方法來擴充自己需要的方法進去:
/// <summary>
/// 作為擴充方法的 class 必須為 靜態類別 static class
/// </summary>
public static class MyExtensionClass
{
/// <summary>
/// 靜態類別內的方法也必須是靜態方法,並且透過 this 關鍵字來告訴 compiler 這是一個 Size 的擴充方法
/// </summary>
/// <param name="size"></param>
/// <returns></returns>
public static int GetRectangleArea(this Size size)
{
return size.Width * size.Height;
}
}
例如 Size 本來沒有算矩形面積的方法,而我經常會需要計算,因此我就加了一個算矩形面積的擴充方法。使用上就會非常的快速而美好:
private static void Main(string[] args)
{
var size = new Size(1920, 1080);
var rectangle = size.GetRectangleArea();
Console.WriteLine($"{size}'s Area = {rectangle}");
Console.ReadKey();
}
/// <output>
/// {Width=1920, Height=1080}'s Area = 2073600
/// </output>
ShopBack 網購再賺最高 40% 現金回饋!
史上最讚的網購回饋,用 shopback 輕鬆賺取最高 40% “現金” 回饋,加入馬上領 100元 獎勵金|操作與使用方式
真心推薦.絕對無腦賺錢!
支持|Leo Studio
如果你喜歡 Leo Studio 請幫我
拍拍手|LikeCoin基金將會分發LikeCoin獎勵創作者
追蹤| Instagram
也歡迎點我小額訂閱 Leo Studio,不定時發布優質內容💌
(adsbygoogle = window.adsbygoogle || []).push({});
(adsbygoogle = window.adsbygoogle || []).push({});