# Sumar números con variable Object

[Inicio](https://www.todoexpertos.com/) › [Visual Basic](https://www.todoexpertos.com/temas/visual-basic)

- Fecha de publicación: 2020-06-18
- Enlace canónico (HTML): https://www.todoexpertos.com/preguntas/ao6qlw7n8rht73hm/sumar-numeros-con-variable-object

## Pregunta

*Por Edwin Lobos* · 2020-06-18

Tengo este algoritmo que me ejecuta las cuatro operaciones básicas, pero tengo un problema con el MsgBox, lo tengo por si se dejan los campos vacíos te salte un mensaje que diga que debes ingresar un numero, y cuando lo ejecuto y le doy en el botón aceptar sin poner nada me salta error, porque la variante no puede ser entero y si es variante object a la hora de sumar por ejemplo 3+3 me aparece 33 y no 6.Que podria hacer en este caso Es urgente! Se los agradecería mucho Public Class Form1 Private Sub boton1_Click(sender As Object, e As EventArgs) Handles boton1.Click Dim operacion, Resultado As Integer Dim num1, num2 As Objectoperacion = combo.SelectedIndex num1 = txt1.Text num2 = txt2.TextIf txt1.Text = ("") Or txt2.Text = ("") Then MsgBox("Debe Ingresar al menos un numero ")End IfIf operacion = 0 Then Resultado = num1 + num2 lista1.Items.Add("↓↓↓El Resultado de la Suma es↓↓↓") lista1.Items.Add(Resultado) ElseIf operacion = 1 Then Resultado = num1 - num2 lista1.Items.Add("↓↓↓El Resultado de la Resta es↓↓↓") lista1.Items.Add(Resultado) ElseIf operacion = 2 Then Resultado = num1 * num2 lista1.Items.Add("↓↓↓El Resultado de la Multiplicacion es↓↓↓") lista1.Items.Add(Resultado) ElseIf operacion = 3 Then Resultado = num1 / num2 lista1.Items.Add("↓↓↓El Resultado de la Multiplicacion es↓↓↓") lista1.Items.Add(Resultado) End If End Sub

## Respuestas (1)

### 1. Respuesta de Germán Gómez
*Fecha: 2020-06-18 · Votos: 0 (+0/-0)*

Estas sumando strings, deberías primero convertir tus valores a enteros, tal como: (int) object, o Int. Parse(string).

Disculpa mi ignorancia, pero soy muy principiante en este mundoNo se si me dices que el problema es en la línea de código donde defino los valores:Dim num1, num2 as integer O a que parte te refieresY muchas gracias por tomarte el tiempo en responder, lo aprecio mucho!

Claro, estas definiendo esas variables como object (num1, num2 as Object) y al asignarle el valor del txt1 o txt2 se convierten en String, lo cual si sumas dos string te dan esos valores, ("2"+"2"="22").Por eso o los defines como "as Integer" o lo conviertes a tal. Asi puedes trabajar con enteros solamente.

pasa que cuando los defino y le doy aceptar para que aparezca el MsgBox con el mensaje se detiene el programa y me tira ese error

Es (int) (txt1.Text) o Int.Parse(txt1.Text)

Me corrijo, utiliza Convert. ToInt32(txtPrice.Text)

La suma se corrigió!Pero el problema del MssgBox persiste

Porque estas tratando de convertir el valor empty ("") a un entero, debes comprobar los valores de entrada antes de hacer la conversion, por ejemplo que no sean valores vacios, o caracteres incorrectos.

pero se supone que el mssgbox es para que me lea el campo vacío y me salte el mensajesiendo así no se podrá hacer ?Y gracias por responder nuevamente y perdón por las molestias.

anexo:el mssgbox si me aparece,  pero cuando doy aceptar en el mssgbox me salta el error.

Exacto, pero mira tu código, ¿qué se ejecuta primero? La verificación de los datos, ¿o la conversión de tales? Ahi esta tu error ;)

Y si se cumple que son válidos no debes continuar con el código, haz un return 0 i null, o usa un if(condición) para eso ;)

Puedes ponerIf(tu función del msgbox)else{todo tu codigo restante}

---
*Fuente: [https://www.todoexpertos.com/preguntas/ao6qlw7n8rht73hm/sumar-numeros-con-variable-object](https://www.todoexpertos.com/preguntas/ao6qlw7n8rht73hm/sumar-numeros-con-variable-object) — consultado el 2026-10-22. Al citar, enlaza la URL canónica e indica la fecha de consulta.*
