代码之家  ›  专栏  ›  技术社区  ›  Bob King

我可以用常量替换vbLf和Chr()吗?

  •  2
  • Bob King  · 技术社区  · 17 年前

    我们正在尝试减少启动期间加载的程序集数量,其中最容易剪切的是Microsoft.VisualBasic程序集。其中有很多东西很容易替换,比如Left(),但我正在努力找到一种替换vbLf和Chr()的好方法。vbCrLf很容易用Environment.NewLine替换,但我们有几个地方可以为基于Unix的系统生成内容,该系统只需要换行符。

    5 回复  |  直到 17 年前
        1
  •  7
  •   Joel Coehoorn    17 年前

    我首先要指出的是,这可能根本没有什么好的理由。所有内置的.Net程序集(包括Microsoft.VisualBasic.dll)始终可供所有.Net程序使用,并且在程序中使用或不使用任何这些程序集都会受到影响 对程序内存占用的影响。您甚至可以从C#程序中使用Microsoft.VisualBasic.dll,而不会出现任何问题。唯一可能遇到问题的情况是库的mono实现。所以,除非你想在某个时候移植到mono,否则你可能是在旋转轮子。

    也就是说:

    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码,但如果您的代码需要单行提要,那么这是一个相当安全的赌注。

        2
  •  3
  •   bdukes Jon Skeet    17 年前

    Public Const vbLf As String = ChrW(10)

    Public Const vbLf As String = Convert.ToChar(10)
    
        3
  •  1
  •   dbasnett    17 年前
            ControlChars.Lf
    

        4
  •  0
  •   bdukes Jon Skeet    17 年前

    Chr Reflector

    在其基础上,它使用 Convert.ToChar()

        5
  •  0
  •   Mark Brackett    17 年前

    link text 在那里代表你。您可以使用 /vbruntime- 切换,但我不建议任何非平凡的应用程序使用它。