C# 是否可以像 Javascript 一样允许重写 this 关键字,以使类似 Jquery 的库成为可能?
在定义事件处理程序时 jQuery,库会处理的 覆盖 this 的值并使 确保它包含对 元素是其来源 事件。
jQuery如何覆盖的值 这?继续阅读。
apply() 和 call()
C#/.NET 可以提供同样的功能吗?如果不是,如何为 C# 构建一个类似 jquery 的库,而不仅仅是 javascript 呢?
From
http://devlicio.us/blogs/sergio_pereira/archive/2009/02/09/javascript-5-ways-to-call-a-function.aspx
When defining event handlers in
jQuery, the library will take care of
overriding the value of this and make
sure it contains a reference to the
element that was the source of the
event.How does jQuery override the value of
this? Keep reading.apply() and call()
Can C#/.NET give that same power ? If not how can one build a jquery-like library for C# not for javascript only ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,无法在 C# 中更改
this
,但这不是构建 所必需的流畅的接口,具有诸如方法链之类的概念(请参阅方法链维基页面以获取示例在 C# 中)。No, there is no way to change
this
in C# but that is not required for building fluent interfaces with concepts like method chaining (see the method chaining wiki page for an example in C#).不可以,C# 不允许您重新定义语言元素。
C# 是一种静态类型语言,而 javascript 是一种动态语言 - 只是一个区别,这意味着您不能覆盖 C# 中的语言元素,但可以在 javascript 中覆盖。
不管怎样,我不太明白如何编写一个既适用于 javascript 又适用于 C# 的库。
No, C# does not allow you to redefine language elements.
C# is a statically typed language whereas javascript is a dynamic language - just one difference that means you can't override language elements in C# but can in javascript.
Regardless, I don't quite see how you would write one library that would work for both javascript and C#.
不,你不能。
this
是一个自动设置的保留关键字,您确实希望它指向正确的位置,即类的当前实例。此外,“C# 的类似 jquery 的库”究竟是什么样的?我认为这个概念没有多大意义。
No, you can't.
this
is a reserved keyword that is set automatically, and you really want it to point to the right place, ie, the current instance of the class.Besides, what would exactly a 'jquery-like library for C#' be like? I don't think the concept makes much sense.