Ver Mensaje Individual
  #5  
Antiguo 24-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por juniorSoft Ver Mensaje
Trate de Utilizar

Código Delphi [-]
if value.IsType<.Double> then

pero no funciono

El registro System.Rtti.TValue es un tanto especial, ya que es un "contenedor" de cualquier tipo de datos. Desde objetos, a interfaces, metaclases, punteros, primitivos, otros registros, metodos anonimos..

Ahora bien, dicho "valor" se escribe con un dato de entrada de "cierto tipo", y el metodo IsType<T> lo que hace es comparar el TypeInfo entre lo que le envias como generico y el del valor almacenado.

Un ejemplo practico:

Código PHP:
var
  
vTValue;
begin
  
// inicializamos un TValue con un string
  
:= TValue.From<string>('1234');

  
// la sobrecarga del operador implicito hace posible esta sintaxis tambien
  
:= '1234';

  
Writeln(v.IsType<string>); // --> True
  
Writeln(v.IsType<Integer>); // -- False
end
Lo que te quiero decir es que IsType<T> va a comparar por el valor "raw" internamente almacenado. No realiza ninguna conversion ni ninguna validacion, estas comparando el tipo de datos; y tiene logica puesto que un string no es un Integer, por mucho mas que la conversion en este caso fuera posible
Responder Con Cita