[C#] 如何添加自己的擴充功能讓功能更完善 | 不只是個工程師
2021/12/25
C# new 出一個 class 後,可透過 ‘.’ 來呼叫其底下的 function 來使用。然而若該 class 內的 function 沒有你需要的,而你又拿不到 source code 來修改,是否有其他方法可以增加進去呢?
如果該 class 內的方法沒有自己需要的,C# 提供了一種透過靜態方法當作擴充方法來假裝是該 class 內本身的方法來擴充自己需要的方法進去:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/// /// 作為擴充方法的 class 必須為 靜態類別 static class/// public static class MyExtensionClass { /// /// 靜態類別內的方法也必須是靜態方法,並且透過 this 關鍵字來告訴 compiler 這是一個 Size 的擴充方法 /// /// /// public static int GetRectangleArea (this Size size ) { return size.Width * size.Height; } }
例如 Size 本來沒有算矩形面積的方法,而我經常會需要計算,因此我就加了一個算矩形面積的擴充方法。 使用上就會非常的方法快速:
1 2 3 4 5 6 7 8 9 10 11 12
private static void Main (string [] args ) { var size = new Size(1920 , 1080 ); var rectangle = size.GetRectangleArea(); Console.WriteLine($"{size} 's Area = {rectangle} " ); Console.ReadKey(); } /// /// {Width=1920, Height=1080}'s Area = 2073600///
完整的 sample code 我放在 github 上了,歡迎下載玩玩看!
github sample code:https://github.com/leoli-git/MySampleCode/tree/main/MyExtension
熱門推薦
收藏本篇文章
檢舉
精彩推薦