El c# y microsoft language especification-
When a virtual method is invoked, the runtime type of the instance for which that invocation takes place determines the actual method implementation to invoke. In a nonvirtual method invocation, the compile-time type of the instance is the determining factor.?
Alguien puede explicar con detenimiento este meollo de invocaciones y de lo otro es
un lío y expliquenlo de manera que lo entienda un nuevo en C# no encontre otro foros
Antes de seguir, ¿tienes claro el concepto de "herencia"?
Saludos
no entiendo porque este post tiene chincheta :rolleyes:
La herencia es una caracterísica de lenguaje POO que es capaz dereutilizar
otra clase por ejemplo de una superclase y tener la misma signature creo que me expliqué bien,por cierto gracias por responder
Cita de: seba123neo en 11 Enero 2013, 23:05 PM
no entiendo porque este post tiene chincheta :rolleyes:
Ups :-X
Cita de: r7pyrred en 11 Enero 2013, 23:27 PM
La herencia es una caracterísica de lenguaje POO que es capaz dereutilizar
otra clase por ejemplo de una superclase y tener la misma signature creo que me expliqué bien,por cierto gracias por responder
Bien, sí tú en una clase tienes un método X con cierto comportamiento, y en una clase derivada quieres redefinir/reescribir este método, el mismo debe de estar declarado como virtual en la base (abstracto es otra opción, pero tiene otro comportamiento).
Supongamos que tienes una clase Vehículo con un método mover que simula el movimiento en un casillero. Por otra parte tienes una clase derivada de nombre Ferrari, sí quieres que este último se mueva 5 casilleros, en la clase Vehículo el método mover debe de estar definido como virtual, para luego en Ferrari sobreescribirlo con override :)
Espero se haya entendido.
Saludos
si si y lo que yo buscaba era que tal y como lo explicaba el specification porque lo dic
asi , si alguien hace el favor de tomarse un tiempecin en explicar
porque lo explica asi me haria un favor ,gracias por la respuesta
Sí entiendes eso, entonces mejor leer lo mismo en español :P
http://msdn.microsoft.com/es-es/library/9fkccyh4(v=vs.80).aspx
Ok nueva duda sobre get set ¿son reservadas?
class MyBaseClass
{
// virtual auto-implemented property. Overrides can only
// provide specialized behavior if they implement get and set accessors.
public virtual string Name { get; set; }
// ordinary virtual property with backing field
private int num;
public virtual int Number
{
get { return num; }
set { num = value; }
}
}
En al l´´inea 3 es una funcion con el modificador virtual
que crea o dice que tiene miembros get y set entre brackets
y luego es otra duncion es la 7 que los usa¿? o como es
Los get y set son reservados. Y si estabas mirando el código que aparece en el link que he dejado anteriormente, lo único que se da como ejemplo es una propiedad auto-implementada y virtual, que luego es sobreescrita por la clase derivada, no me queda claro cual sería la duda :-\
Saludos
si si es una propiedad , es que yo venía de c++ y propiedades en c++ y c#
significan cosas distintas, es una propiedad y get y set no son ni miembros
de una clase ni métodos ni funciones como yo pensaba son ACCESORS algo al
parecer único de las propiedades y que se han de "declarar" uno o los dos
propiedad {uno ; otro ;} según se quiera I ,O o IO xD gracias por la rspuesta