扩展方法
扩展方法是说,你原来的类,没有这么个方法,可是你想用这个方法,于是就出现扩展方法。
比如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);
}
}
}

浙公网安备 33010602011771号