मुझे ReadOnlyObservableCollection<T>
का उपयोग करना पसंद नहीं है क्योंकि यह एक गलती/टूटी हुई कक्षा की तरह लगता है; मैं इसके बजाय एक अनुबंध आधारित दृष्टिकोण पसंद करते हैं। अपने पहले जवाब देने के लिए Stackoverflow और बधाई के लिए
public interface INotifyCollection<T> : ICollection<T>, INotifyCollectionChanged
{
}
public interface IReadOnlyNotifyCollection<out T> : IReadOnlyCollection<T>, INotifyCollectionChanged
{
}
public class NotifyCollection<T> : ObservableCollection<T>, INotifyCollection<T>, IReadOnlyNotifyCollection<T>
{
}
public class Program
{
private static void Main(string[] args)
{
var full = new NotifyCollection<string>();
var readOnlyAccess = (IReadOnlyCollection<string>) full;
var readOnlyNotifyOfChange1 = (IReadOnlyNotifyCollection<string>) full;
//Covarience
var readOnlyListWithChanges = new List<IReadOnlyNotifyCollection<object>>()
{
new NotifyCollection<object>(),
new NotifyCollection<string>(),
};
}
}
स्रोत
2013-03-18 10:17:33
में आपका स्वागत है:
यहाँ मैं क्या उपयोग है कि covarience के लिए अनुमति देता है। कृपया समझने में आसान बनाने की कोशिश करें - उदा। स्वरूपण (कोड, पृथक पैराग्राफ या सूची शैलियों) द्वारा। शायद एक उदाहरण मदद करेगा? – Mateng