VB -> C#: `= ""` should not be converted to `string.IsNullOrEmpty` when `Option Compare Text`
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
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
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
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
- Product in use: e.g. icsharpcode.github.io/CodeConverter
- Version in use: web
- Did you see it working in a previous version, which?alaaaaa
- Any other relevant information to the issue, or your interest in contributing a fix. Roslyn will never do this fix. https://github.com/dotnet/roslyn/issues/71835
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
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de icsharpcode/CodeConverter
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
icsharpcode/CodeConverter#1271 · 1 comentário ·
-
C# -> VB
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
icsharpcode/CodeConverter#1281 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
icsharpcode/CodeConverter#1275 ·
-
VB -> C#
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 62/100
icsharpcode/CodeConverter#1273 ·
-
VB -> C#: "Group By Into" Linq queries supressing aggregations ("Into" part) in the converted codeAbertaDifficult area VB -> C#
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 74/100
icsharpcode/CodeConverter#1272 ·
Todas as issues de icsharpcode/CodeConverter
Issues semelhantes
-
bug P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
nightscout/nocturne#1908 ·
Mantenedores costumam responder em até 1 dia
-
bug documentation Needs: Triage :mag:
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
WPF: each page's `Title` overwrites the window title, and returning to a page does not restore itAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
agentic-workflows area/Docs partner/agentic-workflows
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
jamesmontemagno/tiny-clips#378 · 2 comentários ·
Mantenedores costumam responder em até 1 dia