![]() |
1
219
这是声明扩展方法的语法,这是C#3.0的一个新特性。 扩展方法是部分代码,部分编译器“magic”,其中编译器在visualstudio中借助intellisense使您的扩展方法看起来实际上可以作为所讨论对象的实例方法使用。
类名只是我的命名约定,不必这样命名,但它必须是静态的,方法也是静态的。 声明上述方法后,可以在Visual Studio中键入以下内容:
在点之后,等待intellisense,注意那里有一个GobbleGobble方法,按如下方式完成代码:
重要 :声明扩展方法的类必须对编译器和intellisense处理器可用,以便intellisense显示该方法。如果手动键入GobbleGobble,并使用 Ctrl键 快捷方式,它不会帮助您获得正确的使用指令到文件中。 请注意,该方法的参数已消失。编译器将静默地在重要位周围移动,这些位是:
因此,编译器将上述代码转换为:
所以在调用时,它并没有什么神奇之处,只是对静态方法的调用。
|
![]() |
2
8
在扩展方法之后,我一直在疯狂地使用它们。。这里有一些我经常使用的。。
像这样工作。。
|
![]() |
3
6
它用于扩展方法。基本上,您可以将Helpername“粘合”到htmlHelper对象,这样您就可以说:
|
![]() |
4
5
还不错。但只要稍作改动,就可以将其作为一个扩展方法,调用就会更漂亮一些:
然后叫它。。。
|
![]() |
5
3
…是包含功能的绝佳方式,例如 decorator pattern ,但无需对所有代码进行重构,或使用公共类型的不同名称。
所以你可以在应用程序的任何地方使用这些代码。
所以 command属性表示将添加扩展的类型,并允许您处理该值,就好像它是作为参数传递的一样。 |
![]() |
Andrus · 如何在Linux中阅读期刊 8 月前 |
![]() |
Miranda · 读取xml文件时路径错误中有非法字符 8 月前 |
![]() |
Primdonm · 如何将自定义列表中的字符串值格式化为货币格式? 1 年前 |
|
Kiryl · Sitecore中自己的控制器 1 年前 |
|
Farid · 如何从数据库中填充Resource.resx文件值? 1 年前 |