C#面试的问题:用扩展方法实现给double添加开平方根的功能,函数名叫做sqrt。
static class MyClass
{
public static double sqrt(this double x)
{
return Math.Sqrt(x);
}
}
“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”
这是msdn上说的,也就是你可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,使用时不需要去修改或编译类型本身的代码。
先做个例子吧,以String为例,需要在字符串类型中加一个从字符串转为数值的功能。
以往我们可能是这样做的,会专门写一个方法做过转换
public static double sqrt(double x)
{
return Math.Sqrt(x);
}