Haciendo el articulo de sobrecarga de operadores he tenido que consultar cierta bibliografia en C# y de momento comienzo a tener conciencia de una cantidad de operadores que no conocia, en fin algo mas que aprender: Hay tres tipos de operadores (que yo sepa, de seguro hay más)
- unarios (trabajan sobre un solo operando, ejemplo: N=-N aqui estamos marcando N que es un entero como negativo)
- binarios [no tiene nada que ver con 0 y 1] trabajan sobre dos operandos, ejemplo: l=2+2
- ternarios (trabajan sobre 3 operandos, ejemplo: Operador Condicional ?: en C# seria algo asi double comision= ([condicion])? 0.10 : 0.20; ¿Qué significa?, pues bien si la condicion se cumple comision tomara el valor del segundo operando y de no serlo tomara el valor del tercero.
Una delicia esto del ternario, ahora bien como seria en visual basic.net aunque no es un operador lo que usaremos.Es una función:
dim comision as double= iif([condicion],0.10,0.20)
Y hace unos momentos, me topo con el blog de Cameron Beccario y veo un post que reza: Util Iff para Visual Basic 2005, y bien el url es este
De todas formas lo explicare: Un costumbre de sabios es tener habilitado Option Strict, nos ahorramos el boxeo, digo el boxing, y como IIf devuelve object, no le podemos asignar eso a un double ya que recibiriamos una excepcion ya que las conversiones implicitas estan deshabilitadas, asi que nos queda hacer un cast:
CDouble(IIf([condicion],0.10,0.20))
y se complicaria con Ctypes y demas, aqui es cuando entra la función IIf util para VS2005: Haciendo Uso de Generics (en mi blog unos post mas abajo hay un articulo sobre esto) y Utilizando Type Inference eliminamos el cast, ya que el codigo es adaptado por el JIT en tiempo de ejecucion:
Function IIf(Of T)(ByVal Condicion As Boolean, ByVal ParteVerdadera _
As T, ByVal _ ParteFalsa As T) As T
If Condicion Then
Return ParteVerdadera
Else
Return ParteFalsa
End If
End Function Muchas Gracias a Beccario, y Felicidades a Paul Vick que sera padre, ;-)
3 comments:
Good afternoon
Use http://www.BuySellDirect.net new advance ebay website. to sell your new and used products to your local market only and/or the international market. You can even charge taxes for your local market. It is a free service to buyers and sellers.
Do your self a favorite buy introducing http://www.BuySellDirect.net FREE service to all my friends and family?
Cuidado con los Nothings, es mejor usar if
ejemplo:
If objExcelCell.Value <> Nothing Then 'no usar iff, evalua los parametros
Output0Buffer.Usuario = objExcelCell.Value.ToString().Trim()
Else
Output0Buffer.Usuario = ""
End If
Cuidado con los Nothings, es mejor usar if
ejemplo:
If objExcelCell.Value <> Nothing Then 'no usar iff, evalua los parametros
Output0Buffer.Usuario = objExcelCell.Value.ToString().Trim()
Else
Output0Buffer.Usuario = ""
End If
Post a Comment