仅为一次使用而引用库的成本

时间:2014-01-03 15:57:03

标签: c# .net vb.net

我知道这是一个非常弱的例子,但我的问题更多是为了理解更好的编程实践,所以请耐心等待我自己的例子。

在处理程序时,我遇到的情况是我必须用一个不同的字符替换字符串中的多个字符。

例如,{" ", "-", "/", "*"}中的所有字符都必须全部替换为下划线"_"。但这仅在整个程序中发生一次,结果存储在变量中。

所以,我知道我可以通过以下方式使用多个String.Replace()语句来完成它:

string ChangedString1 = MyString.Replace(" ", "_").Replace("-", "_").Replace("/", "_").Replace("*", "_");

但我知道我也可以使用正则表达式来完成它,例如:

using System.Text.RegularExpressions;
   ...
string ChangedString2 = Regex.Replace(MyString, @"[\s-/*]", "_");

现在,我的问题不是关于哪种方法更好,而是问题是将using System.Text.RegularExpressions;语句仅用于此类用途的费用是多少? 并且,或许System.Text并不昂贵,但是如果仅为一个小用途添加其他参考文件呢呢?

问题在于是否存在某种行业偏好,关于在什么位置编写自己的方法更好,而不是仅为一个或两个较小的函数包含对库的引用。 我是否误解了参考文献是如何工作的,并且它们首先不是那么昂贵?

感谢您的帮助,我希望这个问题有道理!

3 个答案:

答案 0 :(得分:7)

using语句是一个纯编译时功能,可以在引用类时省略命名空间。
它们在运行时没有效果。

这些类都在mscorlib.dll中,无论如何都要引用它。

答案 1 :(得分:5)

.NET Framework库的引用相对于程序的其余部分并不昂贵。您应该以最简单的方式解决手头的问题,而不用担心。

如果您需要第三方参考,并且您的用户需要安装该版本,或者如果它具有不同的许可证,那么这将是另一种蠕虫病毒,我可以在其中看到编写一个小功能本身是有道理的。

答案 2 :(得分:1)

添加单独库的唯一实际成本是内存。这在现代计算机上显然不是什么大问题,除非你在一个非常紧凑的内存空间中工作并使用类似the .NET Micro Framework的东西。

其他答案描述了许可证和分发复杂性等的要求......也来自参考文献。