¿Cómo se puede compilar este código? El siguiente código en el operador int PUEDE acceder a una variable privada de la clase MyValue? ¿Por qué?¿Accediendo a un miembro privado de un parámetro dentro de un método estático?
class Program
{
static void Main(string[] args)
{
Myvalue my = new Myvalue(100);
Console.WriteLine(my + 100);
Console.Read();
}
}
public class Myvalue
{
private int _myvalue;
public Myvalue(int value)
{
_myvalue = value;
}
public static implicit operator int(Myvalue v)
{
return v._myvalue;
}
}
Si la clase hubiera sido estática, lo hubiera entendido. Pero dado que el objeto se pasa por parámetro, ¿por qué no requiere tener acceso? –
@Daok: Porque su método estático es miembro de la clase. Si ese método estático estuviera en otro lugar, no estaría permitido. –
Bien, gracias por la precisión. –