《C3.0新特性:扩展方法初探.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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 Resources Biztalk Server Community Site with Free Samples, Labs, and Videos 返回本类C#3.0新特性:扩展方法初探 C#3.0新特性:扩展方法初探 ??2006-03-26??中文C#技术站   C#3.0中一个激动人心的特性就是扩展方法:你可以使用实例方法的语法来调用静态方法。本文仔细阐述了这一新特性并且给出了几个相应的例子。   声明扩展方法   扩展方法的行为和静态方法是非常类似的,你只能在静态类中声明它们。为声明一个扩展方法,你需要给该方法的第一个参数指定this关键字,如下例: // Program.cs public 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里对以上代码的分析结果

文档评论(0)

lisufan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档