<分区>
锁定 。这个问题及其答案是
locked 因为这个问题离题但具有历史意义。它目前不接受新的答案或互动。
让我们列出一个答案列表,您可以在其中发布您的优秀和最喜欢的 extension methods .
要求是必须发布完整的代码以及示例和如何使用它的说明。
基于对这个主题的高度兴趣,我在 Codeplex 上设置了一个名为 extensionoverflow 的开源项目.
请标记您的答案并同意将代码放入 Codeplex 项目。
请发布完整的源代码而不是链接。
Codeplex 新闻:
24.08.2010 Codeplex 页面现在在这里:http://extensionoverflow.codeplex.com/
11.11.2008 XmlSerialize/XmlDeserialize 现在是 Implemented 和 Unit Tested .
11.11.2008 仍有更多开发者的空间。 ;-) 立即加入!
11.11.2008 第三个贡献者加入 ExtensionOverflow , 欢迎BKristensen
11.11.2008 FormatWith 现在是 Implemented 和 Unit Tested .
09.11.2008 第二个贡献者加入ExtensionOverflow .欢迎来到chakrit .
09.11.2008 我们需要更多的开发人员。 ;-)
09.11.2008 ThrowIfArgumentIsNull 现在 Implemented 和 Unit Tested 在 Codeplex 上。
public static bool In<T>(this T source, params T[] list)
{
if(null==source) throw new ArgumentNullException("source");
return list.Contains(source);
}
允许我替换:
if(reallyLongIntegerVariableName == 1 ||
reallyLongIntegerVariableName == 6 ||
reallyLongIntegerVariableName == 9 ||
reallyLongIntegerVariableName == 11)
{
// do something....
}
and
if(reallyLongStringVariableName == "string1" ||
reallyLongStringVariableName == "string2" ||
reallyLongStringVariableName == "string3")
{
// do something....
}
and
if(reallyLongMethodParameterName == SomeEnum.Value1 ||
reallyLongMethodParameterName == SomeEnum.Value2 ||
reallyLongMethodParameterName == SomeEnum.Value3 ||
reallyLongMethodParameterName == SomeEnum.Value4)
{
// do something....
}
与:
if(reallyLongIntegerVariableName.In(1,6,9,11))
{
// do something....
}
and
if(reallyLongStringVariableName.In("string1","string2","string3"))
{
// do something....
}
and
if(reallyLongMethodParameterName.In(SomeEnum.Value1, SomeEnum.Value2, SomeEnum.Value3, SomeEnum.Value4)
{
// do something....
}