Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

VB -> C#: `= ""` should not be converted to `string.IsNullOrEmpty` when `Option Compare Text`

Aberta
#1,089 0 comentários 2 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
csharp
Domínio
compilers

Direção de pesquisa

Comece rastreando como o conversor trata a igualdade de strings VB quando Option Compare Text está em uso, usando a entrada VB fornecida e a saída C# incorreta como reprodução. Adicione um caso de regressão cuja saída convertida diferencie a primeira comparação da comparação com null e, em seguida, verifique se ela produz as chamadas esperadas a Operators.CompareString e string.IsNullOrEmpty.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Good for coding agent output logic error VB -> C#
VB.Net input code
Option Compare Text
Imports System
Imports Microsoft.VisualBasic

Public Class VisualBasicClass
    Public Shared Sub Main()
        Dim s = ChrW(&H2060) & ChrW(&H2060)
        Console.WriteLine(s = "")
        Console.WriteLine(s = Nothing)
    End Sub
End Class

https://sharplab.io/#v2:DYLgbgRgNALiBOBXAdgHwPIAcYEsD2yABAMJ4C2mAhvAKaEAqNAHjALABQAkhXvDAM6EAygE9+MGmQ7dMvAYQCyOAMbw8/PADMYAOgBqOfokrAAQpX4qOHAAqIIwFSWAXBBoyfOXlxF/34chEGEdg5OQgAW1DQAJsL2ipQ4yAAUAJSBwVkAIjhkhIIAvCQR8ADqKQBkABIATAAMAGz1aYSVJeVVdU0tmVlBpMgawDQ6ZfA4EgAyyTQpRYQARIsZ7P3Bg8Oj45M0M8hzCwByeDARyQDmq1kAoshxQvYcd3G+rkA==

True
False
Erroneous output
using Microsoft.VisualBasic; // Install-Package Microsoft.VisualBasic
using Microsoft.VisualBasic.CompilerServices; // Install-Package Microsoft.VisualBasic

public partial class VisualBasicClass
{
    public static void Main()
    {
        string s = Conversions.ToString(Strings.ChrW(0x2060)) + Strings.ChrW(0x2060);
        Console.WriteLine(string.IsNullOrEmpty(s));
        Console.WriteLine(string.IsNullOrEmpty(s));
    }
}
False
False
Expected output
using Microsoft.VisualBasic; // Install-Package Microsoft.VisualBasic
using Microsoft.VisualBasic.CompilerServices; // Install-Package Microsoft.VisualBasic

public partial class VisualBasicClass
{
    public static void Main()
    {
        string s = Conversions.ToString(Strings.ChrW(0x2060)) + Strings.ChrW(0x2060);
        Console.WriteLine(Operators.CompareString(s, "", true));
        Console.WriteLine(string.IsNullOrEmpty(s));
    }
}
Details

Strings composed of invisible characters (e.g. U+2060 and IVS (e.g. U+E0100)) are treated as equivalent to the empty string by VB only when Option Compare Text.
they are always told from null.

Linguagem predominante
C#
Estrelas
913
Forks
243
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de icsharpcode/CodeConverter

Todas as issues de icsharpcode/CodeConverter

Issues semelhantes

Mais issues de C#

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.