c# – 这是一个很好的使用ExtensionMethod吗?

前端之家收集整理的这篇文章主要介绍了c# – 这是一个很好的使用ExtensionMethod吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚写了一个if语句
if (value == value1 || value == value2 || value == value3 || value == value4)
    //do something

它让我感到烦恼,我总是要重复“值==”部分.在我看来,这不是让人难以阅读的目的.

我写了以下ExtensionMethod,应该使上面的场景更可读:

public static bool IsEqualToAny<T>(this T value,params T[] objects)
{
    return objects.Contains(value);
}

现在我可以简单的写

if (value.IsEqualToAny(value1,value2,value3,value4))
    //do something

这是扩展方法的好用法吗?

编辑:

感谢所有伟大的答案.为了记录:我已经保留了这个方法.虽然你可以简单地使用new [] {value1,value4} .Contains(value)的建议是真的,但我更喜欢从左到右读取这种if语句(如果这个值等于而不是如果这些值包含这个值).在每个对象上都有一个在智能感知中显示方法对我来说不是一个问题.

解决方法

您尚未添加仅对特定应用程序或上下文有用的功能,您的扩展名被明确命名,并且行为是显而易见的,而无需查看实现.

答案是“是的,是”

猜你在找的C#相关文章