我知道我们可以使用类name.method,但我想知道是否有办法通过实例来完成它。你能给我一个例子吗?我问的原因是因为我的教授说:
您必须使用使用静态的调用来调用扩展方法 呼叫表单和实例调用表单
答案 0 :(得分:1)
通过编辑,这是关于扩展方法,然后变得更容易!
使用与以下相同的示例:
bool hasValue1 = s.HasValue(); // use the instance syntax
bool hasValue2 = StringExtensions.HasValue(s); // use the static syntax
请注意,这些是100%相同;一旦编译成IL,就无法确定使用了哪种形式。
简答:" no",根据CS0176:
CS0176会员' {name}'无法使用实例引用访问;使用类型名称来限定它
稍微长一点的答案:如果你真的想要这样做,那么你可能正在寻找扩展方法;例如:
static class StringExtensions
{
public static bool HasValue(this string value)
{
return !string.IsNullOrEmpty(value);
}
}
class Program
{
static void Main()
{
string s = /* some string or null reference */
bool hasValue = s.HasValue();
}
}