none
Convertir C# a VB.net RRS feed

  • Pregunta

  • Estoy queriendo pasar un ejemplo de C# a VB del siguiente ejemplo,

    https://github.com/MrRoundRobin/telegram.bot/issues/120


    Pero la siguiente linea me da error no la puedo convertir ya use convertidores en la WEB y ninguno me lo hace de forma correcta.

    var result = new InlineKeyboardMarkup(new []
            {
                new InlineKeyboardButton[total > 4 ? 5 : total]
            }
        );


    Convertido a VB pero me da error:

    Dim result = New InlineKeyboardMarkup(New () {New InlineKeyboardButton(If(total > 4, 5, total) - 1) {}})

    el error me lo da en el New() <--- error Type Expected

    Agradesco su ayuda.

    jueves, 12 de mayo de 2016 14:41

Respuestas

  • "Leucaleno" escribió:

    > Estoy queriendo pasar un ejemplo de C# a VB del siguiente ejemplo,
    > https://github.com/MrRoundRobin/telegram.bot/issues/120
    >
    > Pero la siguiente linea me da error
    >
    > var result = new InlineKeyboardMarkup(new []
    >        {
    >            new InlineKeyboardButton[total > 4 ? 5 : total]
    >        }
    >    );
    >
    > Convertido a VB pero me da error:
    >
    > Dim result = New InlineKeyboardMarkup(New () {New InlineKeyboardButton(If(total > 4, 5, total) - 1) {}})
    >
    > el error me lo da en el New() <--- error Type Expected

    Hola:

    No habría estado de más que hubieses indicado el constructor o constructores de la clase llamada InlineKeyboardMarkup, pero por el código de C# que has indicado, y siempre que yo no esté equivocado, parece ser que el único parámetro del constructor es una matriz escalonada (una matriz de matrices) de objetos InlineKeyboardButton.

    Vamos a suponer que la clase InlineKeyboardMarkup tiene un constructor con la siguiente firma:

        Class InlineKeyboardMarkup
    
            Sub New(nombreParametro As InlineKeyboardButton()())
    
            End Sub
    
        End Class

    Si es así, y si mis conocimientos de C# no me fallan, el código de Visual Basic traducido tal cual, sería el siguiente:

    Dim result As New InlineKeyboardMarkup(New InlineKeyboardButton(If(total > 4, 5, total) - 1)() {})

    Si por casualidad desconoces lo que es una matriz escalonada, te remito a la lectura del siguiente artículo:

    Matrices en Visual Basic

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    jueves, 12 de mayo de 2016 18:49
    Moderador

Todas las respuestas

  • "Leucaleno" escribió:

    > Estoy queriendo pasar un ejemplo de C# a VB del siguiente ejemplo,
    > https://github.com/MrRoundRobin/telegram.bot/issues/120
    >
    > Pero la siguiente linea me da error
    >
    > var result = new InlineKeyboardMarkup(new []
    >        {
    >            new InlineKeyboardButton[total > 4 ? 5 : total]
    >        }
    >    );
    >
    > Convertido a VB pero me da error:
    >
    > Dim result = New InlineKeyboardMarkup(New () {New InlineKeyboardButton(If(total > 4, 5, total) - 1) {}})
    >
    > el error me lo da en el New() <--- error Type Expected

    Hola:

    No habría estado de más que hubieses indicado el constructor o constructores de la clase llamada InlineKeyboardMarkup, pero por el código de C# que has indicado, y siempre que yo no esté equivocado, parece ser que el único parámetro del constructor es una matriz escalonada (una matriz de matrices) de objetos InlineKeyboardButton.

    Vamos a suponer que la clase InlineKeyboardMarkup tiene un constructor con la siguiente firma:

        Class InlineKeyboardMarkup
    
            Sub New(nombreParametro As InlineKeyboardButton()())
    
            End Sub
    
        End Class

    Si es así, y si mis conocimientos de C# no me fallan, el código de Visual Basic traducido tal cual, sería el siguiente:

    Dim result As New InlineKeyboardMarkup(New InlineKeyboardButton(If(total > 4, 5, total) - 1)() {})

    Si por casualidad desconoces lo que es una matriz escalonada, te remito a la lectura del siguiente artículo:

    Matrices en Visual Basic

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.



    jueves, 12 de mayo de 2016 18:49
    Moderador
  • Excelente Enrique, así funciono y te agradesco mucho por el dato de matrices escalonadas, ahorita me pongo a estudiar el tema.

    saludos.

    viernes, 13 de mayo de 2016 16:50