如何将VB.net常量转换为c#

本文关键字:转换 常量 net VB | 更新日期: 2023-09-27 18:05:33

我正在转换VB。. Net项目到c#在VS2013。我遇到了一个问题,在转换常量在VB。NET转换为c#代码而不想使用参考使用Microsoft.VisualBasic;在我的代码。请给我推荐一些链接。检查下面的例子

例子:

For Constants.vbCrLf i use Environment.Newline;
Constants.vbCr = ?
Constants.vbLf = ?

我的代码

string[] rows = AllData.Split(Constants.vbCr + Constants.vbLf.ToCharArray());

如何将VB.net常量转换为c#

c#中不需要这样的常量,因为它们分别是字符量:'r'n

Environment.Newline不是真的 CRLF (c#中的'r'n) -它依赖于环境。有时候是你想要的,有时候不是。

编辑:

要处理新发布的示例代码,您可以使用:

var rows = AllData.Split(new [] { "'r'n" }, StringSplitOptions.None);

只有您知道"'r'n"还是Environment.NewLine是更好的选择-如果您的输入数据依赖于环境,请使用Environment.NewLine。如果它应该始终是"'r'n",使用它

你可以这样做:

string AllData = @"I'm
a 
multi-line
string";
string[] rows = AllData.Split(''r', ''n');

或者像这样:

string[] rows2 = AllData.Split( System.Environment.NewLine.ToCharArray() );

问题是,你真的想把它们分开吗?
把它们分开也是一个同样糟糕的主意。
我建议只在规范化行结尾之后才拆分,因为Unix/Linux/Mac(一般是POSIX)不使用'r'n,它们只使用'n:

string AllData = @"I'm
a 
multi-line
string";
AllData = AllData.Replace("'r'n", "'n");
string[] rows = AllData.Split(''n');

如果不进行规范化,则如果字符串是在Linux/Mac上组成的,则不会得到行。

string[] rows = AllData.Split(new string[] { "'r'n" }, System.StringSplitOptions.RemoveEmptyEntries);

或者,您可以拆分这两个条目,并删除空条目:

string[] rows = AllData.Split(new char[] { ''r', ''n' }, System.StringSplitOptions.RemoveEmptyEntries);

这取决于你想要达到的效果