您的位置:首页 > 房产 > 家装 > 最新军事新闻新浪网_开网店赚钱吗_网站域名解析_推广方案经典范文

最新军事新闻新浪网_开网店赚钱吗_网站域名解析_推广方案经典范文

2024/12/26 1:22:21 来源:https://blog.csdn.net/m0_72813396/article/details/144495191  浏览:    关键词:最新军事新闻新浪网_开网店赚钱吗_网站域名解析_推广方案经典范文
最新军事新闻新浪网_开网店赚钱吗_网站域名解析_推广方案经典范文

本文将介绍如何为任意 .NET 类型实现自定义扩展方法。 客户端代码可以使用扩展方法。 客户端项目必须引用包含它们的程序集。 客户端项目必须添加一个 using 指令,该指令指定在其中定义扩展方法的命名空间。

定义和调用扩展方法:

  • 定义包含扩展方法的静态类。 该类不能嵌套在另一个类型内,并且必须对客户端代码可见。 
  • 将扩展方法实现为静态方法,并且使其可见性至少与所在类的可见性相同。
  • 此方法的第一个参数指定方法所操作的类型;此参数前面必须加上 this 修饰符。
  • 在调用代码中,添加 using 指令,用于指定包含扩展方法类的命名空间。
  • 将方法作为类型的实例方法调用。

第一个参数并不是由调用代码指定,因为它表示要在其上应用运算符的类型,并且编译器已经知道对象的类型。 你只需通过 n 提供形参 2 的实参。

以下示例实现 CustomExtensions.StringExtension 类中名为 WordCount 的扩展方法。 此方法对 String 类进行操作,该类指定为第一个方法参数。 将 CustomExtensions 命名空间导入应用程序命名空间,并在 Main 方法内部调用此方法。

using CustomExtensions;string s = "The quick brown fox jumped over the lazy dog.";
// Call the method as if it were an
// instance method on the type. Note that the first
// parameter is not specified by the calling code.
int i = s.WordCount();
System.Console.WriteLine("Word count of s is {0}", i);namespace CustomExtensions
{// Extension methods must be defined in a static class.public static class StringExtension{// This is the extension method.// The first parameter takes the "this" modifier// and specifies the type for which the method is defined.public static int WordCount(this string str){return str.Split(new char[] {' ', '.','?'}, StringSplitOptions.RemoveEmptyEntries).Length;}}
}

重载解析首选类型本身定义的实例或静态方法,而不是扩展方法。 扩展方法无法访问扩展类中的任何隐私数据。 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com