c# 自定义扩展方法
2016-04-21 16:31
295 查看
有时我们在使用.net框架里面的某个类时,可能会出现某个类中没有我们想要的方法,那就可以给这些类自定义一些扩展方法,方便我们的使用,而不需要重复创建一个类或者对象。另外在开发中要是一个底层类已经封装好了,如果需要扩展而去重新去该类中修改内容应该也会很麻烦的,所以扩展方法是很方便。
自定义扩展方法
昨天在写代码的时候我需要将XmlDocument对象转换为XDocument对象,但是这两个类没有提供互相转化的方法,所以这就可以使用扩展方法为这两个类添加互相转换的方法,代码如下:
这里创建了XmlExtensions静态类,在该类中创建了两个静态方法,分别是ToXmlDocument和ToXDocument,注意ToXmlDocument方法中参数中this XDocument 表示为XDocument创建的一个扩展方法,参数是 XDocument对象。同理ToXDocument方法类似。这里必须都是静态方法。
自定义扩展方法
昨天在写代码的时候我需要将XmlDocument对象转换为XDocument对象,但是这两个类没有提供互相转化的方法,所以这就可以使用扩展方法为这两个类添加互相转换的方法,代码如下:
public static class XmlExtensions { public static XmlDocument ToXmlDocument(this XDocument xDocument) { var xmlDocument = new XmlDocument(); using (var xmlReader = xDocument.CreateReader()) { xmlDocument.Load(xmlReader); } return xmlDocument; } public static XDocument ToXDocument(this XmlDocument xmlDocument) { //对XmlNode 中的 XML 数据进行快速、非缓存的只进访问 using (var nodeReader = new XmlNodeReader(xmlDocument)) { //跳过非内容节点 nodeReader.MoveToContent(); return XDocument.Load(nodeReader); } } }
这里创建了XmlExtensions静态类,在该类中创建了两个静态方法,分别是ToXmlDocument和ToXDocument,注意ToXmlDocument方法中参数中this XDocument 表示为XDocument创建的一个扩展方法,参数是 XDocument对象。同理ToXDocument方法类似。这里必须都是静态方法。
相关文章推荐
- C# 方法使用 0007
- C#中Invoke的用法(转)
- 《编写高质量代码 : 改善C#程序的157个建议》读书笔记 1-10
- C#多线程编程总结
- C#界面设计之文本阅读器的设计
- C# 协变和逆变
- C#界面设计之TabControl控件的使用
- C#界面设计之菜单栏的使用
- C#界面设计之通用对话框的使用
- 拿什么拯救你,我的代码--c#编码规范实战篇 (转)
- C#预处理器指令
- C#界面设计之ComboBox与ListBox的使用
- C#界面设计之复选按钮与单选按钮的使用实例
- C#基础知识之List的使用
- 谈C#中的Delegate
- C#基础知识之使用字典
- C# 中传递多个参数给多线程
- C#基础知识之虚函数
- C#正则表达式合并连续空格为单个空格
- [C#]读文件