Tôi đã nhẹ ngạc nhiên khi trình biên dịch phàn nàn về điều này:Không thể đọc một const trong một cá thể lớp?
public class UsefulClass
{
public const String RatingName = @"Ratings\rating";
}
public class OtherClass
{
public void SomeFunc()
{
UsefulClass useful = new UsefulClass();
String rating = useful.RatingName;
}
}
Compiler nói, "thành viên tĩnh không thể truy cập với một tài liệu tham khảo ví dụ; đủ điều kiện nó với một loại tên thay vì"
isn này 't một vấn đề, String rating = UsefulClass.RatingName;
hoạt động tốt. Tôi chỉ tò mò những suy nghĩ đằng sau điều này là gì? Tôi có một thể hiện của một lớp công cộng với một hằng số công khai trên đó, tại sao tôi không thể lấy dữ liệu theo cách này?
Thiết kế ngôn ngữ kinh khủng vi phạm nghiêm trọng http://en.wikipedia.org/wiki/Uniform_access_principle ... không có lý do gì cho nó và họ có thể khắc phục nó, không ảnh hưởng đến mã hiện tại, trong giây lát. –