Bất cứ ai có thể vui lòng giải thích, tại sao "riêng chỉ đọc Int32 [] _array = new [] {8, 7, 5};" có thể là null?Trường chỉ đọc được khởi tạo là null, tại sao?
Trong ví dụ này, nó hoạt động và _array luôn không phải là rỗng. Nhưng trong mã công ty của tôi, tôi có một mã simliar và _array luôn là null. Vì vậy, tôi buộc phải tuyên bố nó là tĩnh.
Lớp học là Lớp proxy một phần từ Hợp đồng WCF của tôi.
using System;
using System.ComponentModel;
namespace NullProblem
{
internal class Program
{
private static void Main(string[] args)
{
var myClass = new MyClass();
// Null Exception in coperate code
int first = myClass.First;
// Works
int firstStatic = myClass.FirstStatic;
}
}
// My partial implemantation
public partial class MyClass
{
private readonly Int32[] _array = new[] {8, 7, 5};
private static readonly Int32[] _arrayStatic = new[] {8, 7, 5};
public int First
{
get { return _array[0]; }
}
public int FirstStatic
{
get { return _arrayStatic[0]; }
}
}
// from WebService Reference.cs
public partial class MyClass : INotifyPropertyChanged
{
// a lot of Stuff
#region Implementation of INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
}
Nó không phải sử dụng nhiều để cho chúng ta thấy mã mà làm việc và nói có một số mã khác mà không hoạt động. Bạn cần cung cấp cho chúng tôi một ví dụ ngắn nhưng đầy đủ nhưng không hiệu quả. –
Nếu nó hoạt động ở đây và không có trong mã của bạn, nó là khá rõ ràng rằng có cái gì đó sai trái với mã của bạn. Trừ khi bạn đăng nó, tôi cảm thấy khó khăn để cung cấp bất kỳ sự trợ giúp nào. – Gorpik
Hoạt động như dự định trong LINQPad của tôi. – Davio