Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何仅将事件公开_C#_Oop_Events - Fatal编程技术网

C# 如何仅将事件公开

C# 如何仅将事件公开,c#,oop,events,C#,Oop,Events,我的类中有一个对象: public class MyClass { ObservableCollection<Stuff> oc; .... } 公共类MyClass{ 可观察收集oc; .... } 我希望能够访问课外活动。我可以启用get方法,但我不想公开所有其他方法、属性和内容 如果我只希望有一个方法可用,我会在MyClass中创建一个方法,然后在类中的oc上调用该方法。我不知道如何处理事件对象 那么,我如何才能只公开活动 用MyClass上的事件包装Col

我的类中有一个对象:

public class MyClass {
    ObservableCollection<Stuff> oc;
    ....
}
公共类MyClass{
可观察收集oc;
....
}
我希望能够访问课外活动。我可以启用
get方法,但我不想公开所有其他方法、属性和内容

如果我只希望有一个方法可用,我会在
MyClass
中创建一个方法,然后在类中的
oc
上调用该方法。我不知道如何处理事件对象


那么,我如何才能只公开活动

MyClass
上的事件包装
CollectionChanged
事件。也许是这样的:

public class MyClass
{
    ObservableCollection<Stuff> oc;

    //Assumes oc is never null.
    public event NotifyCollectionChangedEventHandler CollectionChanged
    {
        add { oc.CollectionChanged += value; }
        remove { oc.CollectionChanged -= value; }
    }
}
var myInstance = new MyClass();
//Assume field is assigned at this point to something non-null
myInstance.CollectionChanged += delegate {/*Do something interesting */};