gro*_*eto 0 c# extension-methods
我正在学习扩展方法,并且试图编写我的第一个扩展方法。我想使用系统名称空间,并使用该名称空间编写扩展方法。
我的方法是将货币从GBP转换为BGN。
现在,在我的Main方法中,我都想使用此扩展方法,但是出现编译错误。
public static class ExtentionMethodConvertGBPtoBGN
{
public static double ConvertGBPtoBGN(this ExtentionMethodConvertGBPtoBGN obj, double BGNmoney, double conversionrate)
{
return BGNmoney * conversionrate;
}
}
Run Code Online (Sandbox Code Playgroud)
编译器将引发错误。
错误CS0721'ExtensionMethodConvertGBPtoBGN':静态类型不能用作参数
正确的方法是:
public static class ExtentionMethodConvertGBPtoBGN
{
public static double ConvertGBPtoBGN(this double obj, double conversionrate)
{
return obj * conversionrate;
}
}
Run Code Online (Sandbox Code Playgroud)
在this您需要使用要扩展的类型之后。在这种情况下,显然您想扩展double功能。然后您使用obj(以这种方式命名)from参数。