是否存在需要使用扩展对象的默认值的扩展方法的情况?
例如,
public static class util
{
public static string Foo(this string name="Hello world")
{
return name;
}
}
答案 0 :(得分:2)
我不确定是否会出现这种情况,但你不能这样做。你会收到一个错误:
无法为'this'参数指定默认值
答案 1 :(得分:1)
这不会编译 - 您无法为this
参数指定默认值。
即使你可以,所以它允许你做的就是调用util.Foo()
并让它按默认值行事 - 这可能会派上用场,我想。
答案 2 :(得分:1)
您可以使用以下代码获得相同的结果:
public static string Foo(this string name)
{
if (String.IsNullOrWhiteSpace(name))
return "Hello world";
return name;
}
我相信在某些情况下你可以申请它。例如。当您将可空价格转换为字符串时。