【发布时间】:2012-03-07 07:36:51
【问题描述】:
我们的一个项目中有很多代码如下所示:
internal static class Extensions
{
public static string AddFoo(this string s)
{
if (s == null)
{
return "Foo";
}
return $({s}Foo);
}
}
除了“以后将类型公开更容易”之外,是否有任何明确的理由这样做?
我怀疑它只在非常奇怪的边缘情况(Silverlight 中的反射)中很重要,或者根本不重要。
【问题讨论】:
-
根据我的经验,这是正常的做法。
-
@phoog,好的。但为什么这是正常做法?也许比将一堆方法更改为内部方法更容易?快速修复 --> 将类型标记为内部?
-
这是我一直认为的。但是,我没有经过深思熟虑的分析,这就是为什么我没有发布答案。
-
Eric Lippert 的回答很好地总结了我的想法,同时也提出了一个潜伏在我脑海中试图寻找出路的东西:接口成员的隐式实现必须是公共的。
-
那个方法不等于
return s + "Foo";吗?+运算符不关心 null 或空字符串。