Visual Studio-如何在vb.net代码中查找字符串等于求值
我需要将一堆VB.NET代码转换为C#。Instant C#是一个很好的帮手,但有一个方面。。。字符串不区分大小写的VB.NET代码 在转换之前,我想找到一种方法来搜索执行string equals计算的VB.NET代码,并将其更改为使用string.Compare(x,y,StringComparison.CurrentCultureIgnoreCase)=0 在Visual Studio 2017中是否有办法找到这些字符串求值?可能利用.NET编译器平台SDK? 例如,将测试例程更改为Test2例程的代表,然后转换为C# C#转换后的输出如下Visual Studio-如何在vb.net代码中查找字符串等于求值,vb.net,visual-studio,Vb.net,Visual Studio,我需要将一堆VB.NET代码转换为C#。Instant C#是一个很好的帮手,但有一个方面。。。字符串不区分大小写的VB.NET代码 在转换之前,我想找到一种方法来搜索执行string equals计算的VB.NET代码,并将其更改为使用string.Compare(x,y,StringComparison.CurrentCultureIgnoreCase)=0 在Visual Studio 2017中是否有办法找到这些字符串求值?可能利用.NET编译器平台SDK? 例如,将测试例程更改为Tes
private static void Test()
{
string x = "x";
string y = "y";
if ((x ?? string.Empty) == (y ?? string.Empty))
{
MessageBox.Show("They match");
}
}
private static void Test2()
{
string x = "x";
string y = "y";
if (string.Compare(x, y, StringComparison.CurrentCultureIgnoreCase) == 0)
{
MessageBox.Show("They match");
}
}
虽然原始问题尚未得到回答,但考虑到最新的即时C#生成不区分大小写的输出,回答该问题的必要性已变得毫无意义。下面是测试例程的输出。
private static void Test()
{
string x = "x";
string y = "y";
if (string.Equals(x ?? string.Empty, y ?? string.Empty, StringComparison.OrdinalIgnoreCase))
{
MessageBox.Show("They match");
}
}
VB.Net字符串比较区分大小写,所以我不太明白您想做什么do@GuillaumeB. 当使用选项Compare Text时,它不区分大小写。从MS Docs“您不应该使用String.Compare方法来测试相等性(即,显式查找返回值0,而不考虑一个字符串是否小于或大于另一个字符串)。相反,要确定两个字符串是否相等,请使用String.Equals(字符串、字符串、字符串比较)方法。“@DaveWilliamson-再次安装-将“严格字符串比较”选项与“比较文本”选项相结合是一个问题。@DaveWilliamson-string.Compare在使用小于或大于运算符等效于不区分大小写的比较方面做得最好,而使用OrdinalingOreCase的Equals实例方法应为pr在确定两个字符串是否相等时出错(正如Mary指出的)。下一个构建将识别这一点。
private static void Test()
{
string x = "x";
string y = "y";
if (string.Equals(x ?? string.Empty, y ?? string.Empty, StringComparison.OrdinalIgnoreCase))
{
MessageBox.Show("They match");
}
}