c# – 这是一个很好的使用ExtensionMethod吗?
发布时间:2020-12-15 18:07:28 所属栏目:百科 来源:网络整理
导读:我刚刚写了一个if语句 if (value == value1 || value == value2 || value == value3 || value == value4) //do something 它让我感到烦恼,我总是要重复“值==”部分.在我看来,这不是让人难以阅读的目的. 我写了以下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语句(如果这个值等于而不是如果这些值包含这个值).在每个对象上都有一个在智能感知中显示的方法对我来说不是一个问题. 解决方法
您尚未添加仅对特定应用程序或上下文有用的功能,您的扩展名被明确命名,并且行为是显而易见的,而无需查看实现.
答案是“是的,是” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |