c#扩展方法简介
来源:互联网 发布:js时间选择控件 编辑:程序博客网 时间:2024/06/05 02:30
扩展方法
如何知道的。这还得从项目的本身说起。该项目是一套的微软底层架构上搭建起来的。所有的框架以及控件的封装,数据的传递方法都是整体的框架封装好的。对常用的dropwodnlist控件的数据绑定,这里就有使用的一些扩展方法的封装。怎么以前没有见过这个方法呢。跟过去才发现是扩展方法。
什么是扩展方法
扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异
如何编写扩展方法
扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this修饰符为前缀。仅当您使用 using指令将命名空间显式导入到源代码中之后,扩展方法才位于范围中。
看以下例子
using System;usingSystem.Collections.Generic; using MySpace;//注意:引入扩展方法的空间 namespace Con_1{ class Program { static void Main(string[] args) { string str = "{0}先生。".With("XuGang"); Console.WriteLine("您好!" + str); //2调用集合的扩展方法 str.ShowItems<char>(); } }} namespace MySpace{ //扩展方法必须在非泛型静态类中定义 public static class MyMethods { //注意:第一个参数使用“this”获得当前对象 public static string With(this string_context, params string[] _args) { returnstring.Format(_context,_args); } //2为集合做扩展方法 public static voidShowItems<T>(this IEnumerable<T> _al) { foreach (var item in _al) { Console.WriteLine(item); } } }}
从上例子中可以看出
1 C# 只支持扩展方法,不支持扩展属性、扩展事件等;
2 方法名无限制,第一个参数必须带 this;
3 扩展方法的命名空间可以使用namespace System ,但不推荐;
4 定义扩展方法的类是静态类;
具体准则请参考
有关详细信息,请参阅 如何:实现和调用自定义扩展方法(C# 编程指南)
小结:
这几天刚到公司,熟悉环境为主要。好些东西他们说了并不是马上就可以明白的。所以还是需要经常问旁边的同事
。用到的方法多是封装好的。所以看到这个觉得熟悉但是仔细看来,并不是。扩展方法再不要的地方还是尽量少用。避免出现错误。毕竟用的这些方法是平台设计人员几年的功底的。
3 0
- C# 扩展方法简介
- c#扩展方法简介
- c#中的扩展方法
- C# 扩展方法
- C#扩展方法本质
- C#扩展方法
- 关于C#扩展方法
- C#之扩展方法
- C#2008扩展方法
- C# 扩展方法
- C#扩展方法
- C#扩展方法
- C#扩展方法
- C# 扩展方法
- C# 扩展方法[学习]
- C#扩展方法
- c# 扩展方法
- c# 扩展方法
- 用ASP为你的站点加密
- 程序员要学点儿理财知识,而不仅仅是代码技巧
- CD(Contrastive Divergence)
- 杭电oj第1004总结
- Python+Django+SAE系列教程14-----使表单更安全
- c#扩展方法简介
- IT界三宝
- js调用form中所有input类型数据/调用form中所有数据
- 关于我自己找工作的想法
- 【cocos2d-x制作别踩白块儿】第二期:制作Block类
- android 选取部分 log 的两种方法
- Unity3D 游戏开发构架篇 ——角色类的设计与持久化
- Linux环境Apache+Django+wsgi配置
- 计算机经典书籍(纯屌丝)