Mã này có thể biên dịch như thế nào? Mã bên dưới trong toán tử int CÓ THỂ truy cập một biến riêng của lớp MyValue? Tại sao?Truy cập thành viên riêng của tham số trong một phương thức tĩnh?
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;
}
}
Nếu lớp học đã là tĩnh tôi sẽ hiểu. Nhưng kể từ khi đối tượng được thông qua bởi tham số, tại sao nó không yêu cầu phải có accessor? –
@Daok: Bởi vì phương pháp tĩnh của bạn là một thành viên của lớp. Nếu phương pháp tĩnh đó ở bất cứ nơi nào khác, nó sẽ không được phép. –
Được rồi, cảm ơn sự chính xác. –