扩展方法

扩展方法是说,你原来的类,没有这么个方法,可是你想用这个方法,于是就出现扩展方法。

比如string这个类他没有为字符串添加双引号的方法,这个时候就能自己写扩展方法让string具有这个方法

var original = "ABCD";
var quoted = original.Quote();
Console.WriteLine(original);
Console.WriteLine(quoted);

 

public static class StringExtension
{
public static string Quote(this string str)
{
return $""{str}"";
}
} 

  有以下几点要注意的

1.必须要在一个静态类里面声明一个静态方法

2.静态方法的第一个参数必须是用this打头的,并且这个参数的类型是要依附的类的类型

3.在使用这个方法的时候,不需要为第一个参数提供实参,因为实例本身就是这个实参

再如下面这个栗子

namespace Trimming {
static class DoubleExtension {
public static double Round(this double value, int digits) {
return Math.Round(value, digits);
}
}

class Program {
static void Main(string[] args) {
var d = 12.3456789;
var r1 = d.Round(2);
var r2 = d.Round(4);
Console.WriteLine(d);
Console.WriteLine(r1);
Console.WriteLine(r2);
}
}
}

  

原文地址:https://www.cnblogs.com/1521681359qqcom/p/11397800.html