我来自中级java级别,我想今晚花一些时间学习C#,我基本上想要做的是(psuedo代码):
[KeyPressEvent("KeyPressed")]
private void KeyPressed(object sender, KeyPressEventArgs args) {
if (args.KeyPressed == VK_K) {
// Do stuff
}
}
我的C#白话不是最重要的,但在这个概念上,我没有做过很多与事件有关的Java项目(或者我认为它们被称为Observers)。
修改
好的我明白我认为属性是错误的,我认为它们只是订阅事件的另一种方式,但它只是由我正在使用的第三方框架提供的东西。
答案 0 :(得分:4)
C#没有任何内容将事件与属性相关联。也许您正在使用的第三方框架评估属性以自动挂钩事件,但C#语言和Microsoft的UI框架不会这样做。
答案 1 :(得分:4)
不,属性与事件无关,您只需要向事件注册您的方法,但属性不会执行任何操作,属性会向您的代码添加元数据,他们不会'#34 ;做"除了他们以外的任何东西,以便其他代码可以在运行时读取它们,然后根据它做一些事情。
如果你真的想要你可以根据一个属性自动注册事件,那么就像没有这样做一样,或者没有使用命名约定的属性做同样的事情