我们正在尝试削减在启动期间加载的程序集数量,而最容易削减的程序之一是Microsoft.VisualBasic程序集。其中有很多东西很容易替换,比如Left(),但是我很难找到替换vbLf和Chr()的好方法。 vbCrLf很容易用Environment.NewLine取而代之,但是我们有一些地方可以为基于Unix的系统生成内容,只需要换行。
答案 0 :(得分:7)
我需要首先指出,根本没有充分理由这样做。所有内置的.Net程序集(包括Microsoft.VisualBasic.dll)始终可供所有.Net程序使用,并且在程序中使用或不使用任何这些程序集会对程序的内存占用产生零影响。您甚至可以使用C#程序中的Microsoft.VisualBasic.dll而不会出现任何问题。您可能遇到问题的唯一情况是库的单声道实现。因此,除非您考虑在某些时候移植到单声道,否则您可能正在转动轮子。
那说:
<强> CHR():强>
Function Chr(Byval CharCode As Integer) as Char
Return Convert.ToChar(CharCode)
End Function
<强> vbLf 强>
Const vbLf As Char = Chr(10) ''// of course calling your own Chr implementation
这假设是ASCII,但是如果你有代码期望单行换行,这是一个非常安全的选择。
答案 1 :(得分:3)
<击> Public Const vbLf As String = ChrW(10)
击>
Public Const vbLf As String = Convert.ToChar(10)
答案 2 :(得分:1)
ControlChars.Lf
这是一个常数。
答案 3 :(得分:0)
在它的基础上,它使用Convert.ToChar()
,但它在检查和不同字符范围的不同行为方面做得更多。
答案 4 :(得分:0)
假设您正在使用VB.NET,删除对Microsoft.VisualBasic类的显式调用将不会删除对程序集的引用。 VB.NET编译器代表您使用了一些函数link text。您可以使用/vbruntime-开关进行编译,但我不建议将其用于任何非平凡的应用程序。