Ver Mensaje Individual
  #5  
Antiguo 11-03-2016
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
Con el with estoy de acuerdo, sin pensarlo; la unica excepcion para el with es este caso: The Either Type en el cual comparto con Stefan

Pero con el tema de los Scoped Enum no. Y es que el problema esta en que en la VCL seguimos "de la manera vieja" y en FMX esta "la manera nueva" y esto genera mucha confusion. Yo creo que Embarcadero deberia haber hecho el mismo cambio en sus dos framework, no solamente en uno

Por otro lado, el tema "ambiguedad", no estoy de acuerdo

Código Delphi [-]
uses
  System.SysUtils,
  Unit1 in 'Unit1.pas';

type
  TNumeros = (Uno, Dos, Tres);

  // declarado en seccion interface de Unit1, sino obtendria un Identifier redeclared: 'Uno'
//  TPalabras = (Uno, Delphi);

var
  Numero: TNumeros;
  Palabra: TPalabras;
begin
  Numero := Uno; // TNumeros.Uno
  Numero := Dos; // TNumeros.Dos
  Palabra := Uno; // E2010 Incompatible types: 'TPalabras' and 'TNumeros'
  Readln;
end.

Este codigo no compila, lo cual es algo bueno

Si hay colisiones de enumerativos, o bien se usan calificadores completos, o bien se usa otro prefijo. Pero no se puede decir que hay posibilidad de codigo ambiguo como en el caso del with que ya todos sabemos que puede desencadenar en un desastre
Responder Con Cita