- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《C3.0新特性:扩展方法初探
欢迎访问中文C#技术站! 返回首页
Free Blog with domains!Domains as low as $1.19/ea, free website and more Globe7 - Free !Call Free, Chat Free and Watch TV for Free! Globe7 - Free Download!Phone + Chat + Radio + TV Free! Download Now! Biztalk Server ResourcesBiztalk Server Community Site with Free Samples, Labs, and Videos 返回本类C#3.0新特性:扩展方法初探
C#3.0新特性:扩展方法初探
??2006-03-26??中文C#技术站
C#3.0中一个激动人心的特性就是扩展方法:你可以使用实例方法的语法来调用静态方法。本文仔细阐述了这一新特性并且给出了几个相应的例子。 声明扩展方法 扩展方法的行为和静态方法是非常类似的,你只能在静态类中声明它们。为声明一个扩展方法,你需要给该方法的第一个参数指定this关键字,如下例:
// Program.cspublic static class EMClass{ public static int ToInt32Ext(this string s) { return Int32.Parse(s); } public static int ToInt32Static(string s) { return Int32.Parse(s); }}class Program{ static void Main(string[] args) { string s = 9; int i = s.ToInt32Ext(); // LINE A Console.WriteLine(i); int j = EMClass.ToInt32Static(s); // LINE B Console.WriteLine(j); Console.ReadLine(); }}
为编译如上代码,你需要安装Visual Studio 2005和LINQ的预览版。如果你已经安装了VS2005,那么你将在Visual C#的LINQ Preview里看到三个新的工程模板:LINQ命令行应用程序,LINQ窗口程序和LINQ库。如下操作编译代码: 1. 打开VS2005编辑器,创建一个新工程,在新建工程窗口中选择LINQ Console作为工程模板。 2. 将工程命名为ExtensionMethods,点击Ok。 3. 将如上代码键入编辑器。 4. 按下F5编译工程并运行。 如果你只是安装了.NET 2.0,那么你可以运行命令行编译器:
Csc.exe /reference:C:\Program Files\LINQ Preview\Bin\System.Data.DLINQ.dll/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll/reference:C:\Program Files\LINQ Preview\Bin\System.Query.dll/reference:C:\Program Files\LINQ Preview\Bin\System.Xml.XLINQ.dll/target:exe Program.cs
就像你在如上代码里所看到的那样,扩展方法(ToInt32Ext)和普通的静态方法(ToInt32Static)的不同在于: 1. 扩展方法的第一个参数有一个this关键字,而静态方法不会在它的参数声明里有this关键字。 2. 当使用扩展方法的是哦户,使用this关键字声明的的参数没有进行传递。在上面的例子里,Line A就是一个使用扩展方法ToInt32Ext的例子。不需要将参数传递给它。当静态方法在使用的时候,是不能忽略掉任何的参数的。所有的参数必须传递进入函数。Line B就是一个例子。 3. 扩展方法只能在静态类中定义。对于静态方法,这并不成为一个要求,因为静态方法可以在一个静态类或普通类中存在。 4. 扩展方法只能针对实例调用。 扩展方法,尽管本质上还是静态的,但是只能针对实例调用。如果在一个类中调用它们将会引发编译错误。调用它们的类实例是由声明中的第一个参数决定的,就是有关键字this修饰的那个。 在IL内部 如果你观看IL里对以上代码的分析结果
您可能关注的文档
最近下载
- 2024年上海市普通高校招生本科艺术甲批次平行段院校专业组投档分数线美术与设计类.pdf VIP
- 2024入团共青团基础知识题库(含答案).docx
- 2024年在线网课学习课堂《健康管理科研思维训练(杭州师大 )》单元测试考核答案.pdf
- 2024年中国河南国际合作集团有限公司人员招聘考试题库及答案解析.docx
- 《骆驼祥子》读书分享PPT课件(精选图文).pptx
- 汉长安城遗址总体规划.pptx
- 欠钱不还的法院起诉书.docx VIP
- GB-T 10125-2012 人造气氛腐蚀试验 盐雾试验.pdf
- 新人教版七年级上册生物全册教案(2024年秋季新版教材).docx
- pcs-9651_080885技术和使用说明书.pdf
文档评论(0)