ser*_*0ne 14 .net c# extension-methods helper
可能重复:
扩展方法与静态实用程序类
我正在构建一个通用函数的API,它根据.NET中的对象执行操作.例如; 我创建了一个函数来检查字符串以查看它是否是电子邮件地址.
我可能有:
static bool IsEmailAddress(string text)
{
return IsMail(text);
}
Run Code Online (Sandbox Code Playgroud)
或者我可以创建一个像这样使用的扩展方法:
string text = "HelloWorld@Email.com";
if (text.IsEmailAddress())
{
}
Run Code Online (Sandbox Code Playgroud)
哪个更合适,或者你认为既然这是一个通用的库,我可以在技术上实现它两种方式,并允许开发人员决定哪个最适合他们?
Ste*_*ven 14
创建扩展方法意味着当用户使用该类型时,它将在智能感知期间自动显示.您必须小心不要在开发人员浏览的方法列表中添加大量噪声(特别是在创建可重用框架时).例如,当这些方法仅在某个上下文中可用时,您可能更适合使用"常规"静态方法.特别是在实现一般类型的扩展方法时string.
以ToXml(this string)扩展方法或ToInt(this string)扩展方法为例.虽然使用这些扩展方法似乎很方便,但是在整个应用程序中你不会将文本转换为XML,这样做很容易XmlHelper.ToXml(someString).
只有一件事情更糟,那就是添加一个扩展方法object.
如果您正在编写可重用的框架,那么Krzysztof Cwalina的"框架 - 设计 - 指南"一书绝对必读.
| 归档时间: |
|
| 查看次数: |
31131 次 |
| 最近记录: |