¿Qué significa "Desde cualquier tipo de clase S a cualquier tipo de interfaz T, siempre que S no esté sellado y siempre que S no implemente T". en realidad significa?¿Qué significa "De cualquier tipo de clase S a cualquier tipo de interfaz T, siempre que S no esté sellado y siempre que S no implemente T." en realidad significa?
me encontré con esto en las especificaciones del lenguaje C# here:
6.2.4 conversiones referencia explícita
conversiones La referencia explícita son:
- ...
- Desde cualquier tipo de clase S a cualquier tipo de interfaz T, pro RESPETA S no es sellado y proporciona S no implementar T.
que pueda entender lo que "siempre y S no está cerrado", pero no estoy seguro si entiendo lo que hace "proporcionada S no implementar T "realmente significa.
Por ejemplo:
class S {}//not sealed, nor does it implement T
interface T {}
...
T t = (T)new S();//will throw InvalidCastException.
Podría ser que se encuentra en las especificaciones sólo para enumerar todas las formas sintácticamente correctas de expresar una conversión explícita referencia, independientemente de si se va a lanzar una excepción o no? ¿O significa alguna otra cosa que no sé (a partir de ahora)?
Gracias de antemano.
Nota: En su ejemplo, la conversión explícita existió. De lo contrario, no se habría compilado. Todo es bueno en tiempo de compilación. El hecho de que la conversión explote en el tiempo de ejecución es algo típico de las conversiones * explicit *. A veces arrojan, a veces tienen éxito. Ahora, en cambio, si 'S' implementa' T', hay *** una conversión de referencia *** implícita (ver otra subsección sobre eso). Entonces, la razón por la que dicen que 'S' no implementa' T' es que de lo contrario ya habría otra conversión (superior) disponible. –