可以向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。
- 扩展方法所在的类必须声明为static。
- 扩展方法必须声明为public和static。
- 扩展方法的第一个参数必须包含关键字this,并且第一个参数的类型是指定扩展类的名称
public static class ExpandMethod
{
/// <summary>
/// 将字符串转换为int
/// </summary>
/// <param name="str"></param>
/// <returns>失败返回0</returns>
public static int StringToInt(this string str)
{
int.TryParse(str, out var res);
return res;
}
}
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("2" + 1);
Console.WriteLine("2".StringToInt() + 1);
Console.WriteLine("string".StringToInt());
}
}