Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Puntoinfinito en 26 Abril 2012, 22:26 pm



Título: Conectar propiedades?
Publicado por: Puntoinfinito en 26 Abril 2012, 22:26 pm
Buenas a tod@s.
Hoy tengo una pregunta para .NET (Visual Basic 2010 Express)

A ver mirad, estoy aprendiendo de un tutorial de una web, y me enseñaron a poner propiedades y que hacer con ellas ...

Verán lo que intento es hacer lo siguiente.

Que salga una aplicación que salga un label que diga 50+50 y ponerle una propiedad de 100.
Y luego dos botones que den respuesta en esta caso como ej. 70 y otro button de 100.

Lo que quiero poner un code que me mire la propiedad de el label y que lo compruebe con el Button y me diga si es correcto o incorrecto.
Como podéis ver en mi code he puesto que salga manualmente el msgbox, pero no que lo compruebe con el valor del label...

Código:
Esto seria así:
CÓDIGO DE LABEL1: (Dice 50+50)
If label1.text = "100" Then
CÓDIGO DE EL BUTTON1 (El de la respuesta 70)
MsgBox ("Incorrecto")
CÓDIGO DE EL BUTTON2 (El de la respuesta 100)
MsgBox ("Correcto")

Saludos y os mando ánimos para ayudarme :D


Título: Re: Conectar propiedades?
Publicado por: seba123neo en 26 Abril 2012, 23:42 pm
lo que vos estas queriendo hacer se llama "evaluar expresiones", o sea necesitas evaluar ese string que tiene el "50+50" y que te devuelva 100, para hacer eso hay varias formas, una forma sin librerias externas es usando un DataTable, es medio como un truco.

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  4.        MsgBox(Evaluate("50+50"))
  5.    End Sub
  6.  
  7.    Public Shared Function Evaluate(ByVal expression As String) As Double
  8.        Dim table As New DataTable()
  9.        table.Columns.Add("expression", GetType(String), expression)
  10.        Dim row As DataRow = table.NewRow()
  11.        table.Rows.Add(row)
  12.        Return Double.Parse(DirectCast(row("expression"), String))
  13.    End Function
  14. End Class

la otra es usar una libreria libre llamda NCalc, es una de los mejores evaluadores de expresiones:

http://ncalc.codeplex.com/ (http://ncalc.codeplex.com/)

algunas otras opciones en este post:

Evaluate C# string with math operators (http://stackoverflow.com/questions/5838918/evaluate-c-sharp-string-with-math-operators)

saludos.