我不完全确定如何确定一个方法是否是扩展方法。我阅读了以下指南:
该方法必须在静态类中(例如“IntExtensions”)。
该方法需要是“公共静态”(例如
public static int Half(this int source)
)
我对扩展方法的问题是:
- 我不明白我们如何知道该方法正在扩展哪个类。是
this
前面那个类吗?所以在上面的例子中它会是字符串? - 封装方法的静态类起什么作用?整个语法似乎很混乱。
- 我不能为同一类下的不同类分组许多不同的扩展方法吗(这似乎没有意义,因为我只想扩展 1 个类)例如:
/
public static class IntExtensions
{
// method has to be static, first parameter is tagged with the 'this'
// keyword, the type of the parameter is the type that is extended.
public static int Half(this int source)
{
return source / 2;
}
public static string foo( this string s)
{
//some code
}
}