Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

C# -> VB: unchecked can cause compile error

Abierto
#981 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
csharp, visualbasic
Área
devtools

Línea de trabajo

Comience con CommonConversions.RemodelVariableDeclaration, identificado en el error de conversión, y reproduzca la entrada de C# que contiene argumentos hexadecimales sin comprobación para Color.FromArgb. Rastree cómo se convierten estas expresiones a VB y verifique que la salida coincida con las declaraciones Dim esperadas sin errores de conversión.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

C# -> VB
Input code
using System.Drawing;
using System.Windows.Forms;

class ConverterTests {
    public Color[] test1() {
        var textColor = Color.FromArgb(unchecked((int)0xFFCFCFCF));
        var backColor = Color.FromArgb(unchecked((int)0xFF303030));
        var altTextColor = Color.FromArgb(unchecked((int)0xFFFFFFFF));
        var altBackColor = Color.FromArgb(unchecked((int)0xFF515259));

        return new Color[] { textColor, backColor, altTextColor, altBackColor };
    }
}
Erroneous output
Imports System.Drawing
Imports System.Windows.Forms

Friend Class ConverterTests
    Public Function test1() As Color()
                ''' Cannot convert LocalDeclarationStatementSyntax, System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.VisualBasic.Syntax.EmptyStatementSyntax' to type 'Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax'.
'''    at ICSharpCode.CodeConverter.VB.CommonConversions.RemodelVariableDeclaration(VariableDeclarationSyntax declaration)
'''    at ICSharpCode.CodeConverter.VB.MethodBodyExecutableStatementVisitor.VisitLocalDeclarationStatement(LocalDeclarationStatementSyntax node)
'''    at Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
'''    at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor`1.Visit(SyntaxNode node)
'''    at ICSharpCode.CodeConverter.VB.CommentConvertingMethodBodyVisitor.DefaultVisit(SyntaxNode node)
''' 
''' Input:
'''         var textColor = System.Drawing.Color.FromArgb(unchecked((int)0xFFCFCFCF));
''' 
''' 
                ''' Cannot convert LocalDeclarationStatementSyntax, System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.VisualBasic.Syntax.EmptyStatementSyntax' to type 'Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax'.
'''    at ICSharpCode.CodeConverter.VB.CommonConversions.RemodelVariableDeclaration(VariableDeclarationSyntax declaration)
'''    at ICSharpCode.CodeConverter.VB.MethodBodyExecutableStatementVisitor.VisitLocalDeclarationStatement(LocalDeclarationStatementSyntax node)
'''    at Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
'''    at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor`1.Visit(SyntaxNode node)
'''    at ICSharpCode.CodeConverter.VB.CommentConvertingMethodBodyVisitor.DefaultVisit(SyntaxNode node)
''' 
''' Input:
'''         var backColor = System.Drawing.Color.FromArgb(unchecked((int)0xFF303030));
''' 
''' 
                ''' Cannot convert LocalDeclarationStatementSyntax, System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.VisualBasic.Syntax.EmptyStatementSyntax' to type 'Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax'.
'''    at ICSharpCode.CodeConverter.VB.CommonConversions.RemodelVariableDeclaration(VariableDeclarationSyntax declaration)
'''    at ICSharpCode.CodeConverter.VB.MethodBodyExecutableStatementVisitor.VisitLocalDeclarationStatement(LocalDeclarationStatementSyntax node)
'''    at Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
'''    at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor`1.Visit(SyntaxNode node)
'''    at ICSharpCode.CodeConverter.VB.CommentConvertingMethodBodyVisitor.DefaultVisit(SyntaxNode node)
''' 
''' Input:
'''         var altTextColor = System.Drawing.Color.FromArgb(unchecked((int)0xFFFFFFFF));
''' 
''' 
                ''' Cannot convert LocalDeclarationStatementSyntax, System.InvalidCastException: Unable to cast object of type 'Microsoft.CodeAnalysis.VisualBasic.Syntax.EmptyStatementSyntax' to type 'Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax'.
'''    at ICSharpCode.CodeConverter.VB.CommonConversions.RemodelVariableDeclaration(VariableDeclarationSyntax declaration)
'''    at ICSharpCode.CodeConverter.VB.MethodBodyExecutableStatementVisitor.VisitLocalDeclarationStatement(LocalDeclarationStatementSyntax node)
'''    at Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax.Accept[TResult](CSharpSyntaxVisitor`1 visitor)
'''    at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxVisitor`1.Visit(SyntaxNode node)
'''    at ICSharpCode.CodeConverter.VB.CommentConvertingMethodBodyVisitor.DefaultVisit(SyntaxNode node)
''' 
''' Input:
'''         var altBackColor = System.Drawing.Color.FromArgb(unchecked((int)0xFF515259));
''' 
''' 

        Return New Color() {textColor, backColor, altTextColor, altBackColor}
    End Function
End Class
Expected output
Imports System.Drawing
Imports System.Windows.Forms

Friend Class ConverterTests
    Public Function test1() As Color()
        Dim textColor As Color = Color.FromArgb(&HFFCFCFCF)
        Dim backColor As Color = Color.FromArgb(&HFF303030)
        Dim altTextColor As Color = Color.FromArgb(&HFFFFFFFF)
        Dim altBackColor As Color = Color.FromArgb(&HFF515259)

        Return New Color() {textColor, backColor, altTextColor, altBackColor}
    End Function
End Class
Details
  • Product in use: VS extension (Microsoft Visual Studio Community 2019 / Version 16.11.23)
  • Version in use: 9.1.1.0
  • Did you see it working in a previous version, which? / No, but I don't think I've tried this code before
  • I suppose this is fairly minor, fixing the output is easy, but I noticed it when converting a fairly large file, so I suppose it's probably a good idea to fix. I'm happy to help, but not sure I'd be able to figure anything out - this project looks fairly huge...
Lenguaje dominante
C#
Estrellas
914
Forks
242
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de icsharpcode/CodeConverter

Todos los issues de icsharpcode/CodeConverter

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.