说我有这样一个类:
public class FauxIdentityForm
{
public Guid FormID { get; set; }
public event EventHandler Closed;
public void TheObjectWasClosed(EventArgs e)
{
Closed(this, e);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在TheObjectWasClosed方法中调用Closed事件.但是,如果在不同的类中(即使在同一个文件中),我有一个这样的方法:
public void CallTheEvent()
{
FauxIdentityForm _formIdentity = new FauxIdentityForm {FormID = Guid.NewGuid()};
_formIdentity.Closed(_formIdentity, null); // <-- Does not compile!
}
Run Code Online (Sandbox Code Playgroud)
对Closed的调用被编译器击落(它希望我只使用+ =和 - =).
那么,实际上是只允许在类中允许的事件?这是限制吗?
如果是这样,它周围有吗?如果没有,为什么C#的创作者会这样做?(这有时会使事件变得非常困难.我想有一个很好的理由,它可能会让我远离自己,但我想知道它.)