我知道这是一个非常弱的例子,但我的问题更多是为了理解更好的编程实践,所以请耐心等待我自己的例子。
在处理程序时,我遇到的情况是我必须用一个不同的字符替换字符串中的多个字符。
例如,{" ", "-", "/", "*"}
中的所有字符都必须全部替换为下划线"_"
。但这仅在整个程序中发生一次,结果存储在变量中。
所以,我知道我可以通过以下方式使用多个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
并不昂贵,但是如果仅为一个小用途添加其他参考文件呢呢?
问题在于是否存在某种行业偏好,关于在什么位置编写自己的方法更好,而不是仅为一个或两个较小的函数包含对库的引用。 或我是否误解了参考文献是如何工作的,并且它们首先不是那么昂贵?
感谢您的帮助,我希望这个问题有道理!
答案 0 :(得分:7)
using
语句是一个纯编译时功能,可以在引用类时省略命名空间。
它们在运行时没有效果。
这些类都在mscorlib.dll中,无论如何都要引用它。
答案 1 :(得分:5)
对.NET Framework
库的引用相对于程序的其余部分并不昂贵。您应该以最简单的方式解决手头的问题,而不用担心。
如果您需要第三方参考,并且您的用户需要安装该版本,或者如果它具有不同的许可证,那么这将是另一种蠕虫病毒,我可以在其中看到编写一个小功能本身是有道理的。
答案 2 :(得分:1)
添加单独库的唯一实际成本是内存。这在现代计算机上显然不是什么大问题,除非你在一个非常紧凑的内存空间中工作并使用类似the .NET Micro Framework的东西。
其他答案描述了许可证和分发复杂性等的要求......也来自参考文献。