【发布时间】:2012-07-05 00:49:26
【问题描述】:
我正在构建一个基于 .NET 中的对象执行操作的通用函数 API。例如;我创建了一个函数来检查一个字符串,看看它是否是一个电子邮件地址。
我可以有:
static bool IsEmailAddress(string text)
{
return IsMail(text);
}
或者我可以创建一个可以像这样使用的扩展方法:
string text = "HelloWorld@Email.com";
if (text.IsEmailAddress())
{
}
哪个更合适,或者您认为既然这是一个通用库,我可以在技术上以两种方式实现它并让开发人员决定哪个最适合他们?
【问题讨论】:
-
顺便说一句: 使用
return IsMail(text)而不是 if 语句。 -
我会使用扩展方法和 Mahmoud 建议的重构。
-
我认为
string没有责任知道电子邮件地址是什么。所以我认为这不应该是一种扩展方法。 -
你在征求意见,我认为这里不鼓励这样做。
-
@CodesInChaos 虽然我原则上同意你的观点,在 OPs 代码的上下文中,他对
string印象深刻是一种责任。扩展方法又好又干净又简洁,所以在这种情况下我会这样做。
标签: c# .net extension-methods helper