Hãy xem xét các lớp sau đây:Hành vi lạ trên các thành viên tĩnh của một lớp - Làm thế nào điều này có thể?
public class MyClass
{
public static string[] SomeAmazingConsts = { Const1 };
public static string Const1 = "Constant 1";
public static string Const2 = "Constant 2";
}
Bây giờ, hãy kiểm tra việc sử dụng:
class Program
{
static void Main(string[] args)
{
string[] s = MyClass.SomeAmazingConsts;
//s[0] == null
}
}
Vấn đề là s [0] == null! Chuyện này xảy ra như thế nào? Bây giờ, sắp xếp lại biến tĩnh của MyClass như sau:
public class MyClass
{
public static string Const1 = "Constant 1";
public static string Const2 = "Constant 2";
public static string[] SomeAmazingConsts = { Const1 };
}
Mọi thứ bắt đầu hoạt động bình thường. Bất cứ ai cũng có thể làm sáng tỏ điều này?
Bạn đang gán một tham chiếu null để mảng, nó không thể kỳ diệu được tái giao giá trị sửa đổi – jedgard