![]() |
1
12
不能直接激发基类事件。这就是为什么你必须
使用 base.OnMove() 相反。 |
![]() |
2
4
从C语言规范第10.7节(增加重点)开始:
因此,不能将移动事件视为字段的原因是它是在不同类型(在本例中是超类)中定义的。我同意@womp的推测,即设计师做出这一选择是为了防止意外的胡闹。允许不相关的类型(不是从声明事件的类型派生的类型)执行此操作显然很糟糕,但即使对于派生类型,也可能不需要这样做。它们可能必须包含语法才能进行事件声明。
|
![]() |
3
3
区别在于范围。在类内部,您可以控制如何处理事件委托,但是,类不能控制基类正在做什么。它可能会在幕后对事件及其处理程序进行一些疯狂的处理。如果只是“重新分配”移动事件,则会清除该事件的多播委派列表。 我猜他们对此设置了编译器限制,因为这是一个非常不安全的实践,并且本质上会给任何子类破坏其父级事件模型的能力。 |
![]() |
4
1
您只需要在定义事件本身的类中发布的代码。所有派生类都应该直接调用onshapechanged()或onmove(),而不需要复制等,因此您根本不应该在类中编写代码(因为move事件是在基中定义的)。 如果您确实需要在派生类中进行某种处理(也许您需要处理您的集合类?),您将重写虚拟的onxxx调用,并在调用base.onxxx()之前完成一些操作。在msdn文章中,circle类与dockedtoolWindow类相对应。同样的模式应该对派生类可用。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |