VB -> C#: `= ""` should not be converted to `string.IsNullOrEmpty` when `Option Compare Text`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia tracciando il modo in cui il convertitore gestisce l’uguaglianza tra stringhe VB con Option Compare Text, usando l’input VB fornito e l’output C# errato come riproduzione. Aggiungi un caso di regressione il cui output convertito distingua il primo confronto dal confronto con null, quindi verifica che produca le chiamate previste a Operators.CompareString e string.IsNullOrEmpty.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- C#
- Stelle
- 913
- Fork
- 243
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di icsharpcode/CodeConverter
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
icsharpcode/CodeConverter#1271 · 1 commento ·
-
C# -> VB
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
icsharpcode/CodeConverter#1281 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
icsharpcode/CodeConverter#1275 ·
-
VB -> C#
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
icsharpcode/CodeConverter#1273 ·
-
VB -> C#: "Group By Into" Linq queries supressing aggregations ("Into" part) in the converted codeApertaDifficult area VB -> C#
Difficoltà 3/5 1-2 giorni Idoneità per principianti 74/100
icsharpcode/CodeConverter#1272 ·
Tutte le issue di icsharpcode/CodeConverter
Issue simili
-
area/navigationview 🧭 difficulty/starter 🚀 good first issue kind/bug platform/all project/navigation-lifecycle 🧬 triage/untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
unoplatform/uno#24925 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
DamianEdwards/ghcp-spend-tray#39 ·
I maintainer di solito rispondono entro 1 giorno
-
copilot documentation
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 2 giorni
-
[Rust][Flaky Test] multiple_deadlines_fire_in_order asserts a wall-clock gap instead of firing orderApertaCI/CD ⚒️ Flaky-tests 🐦
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
valkey-io/valkey-glide#7255 ·
I maintainer di solito rispondono entro 3 giorni
-
bug good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
unoplatform/Uno.Core#99 ·