前阵子在CodeProject上看到了一篇文章:MBG Extensions Library

大致是作者在介绍自己写的扩展方法类库,内容如下:

In()

if (myString == "val1" ||
   myString == "val2" ||
   myString == "val3" ||
   myString == "val4" ||
   myString == "val5")
   {
      //Do something
   }

使用扩展方法In,可以这样写:

if (myString.In("val1", "val2", "val3", "val4", "val5"))
{
   //Do something
}

Cool!

In示例2:

bool found = false;
foreach (string s in myList)
{
   if (myString == s)
   {
      found = true;
      break;
   }
}
if (found)
{
   //Do something
}

使用In扩展,可以写成:

if (myString.In(myList))
{
   //Do something
}

当然,我个人认为还是myList.contain(myString) 要好点。

如果说只能在string 类型上使用In的话,那么你就错了,作者把In还用在了Enum上。

例如:

public enum MyEnum
{
   MyValue1,
   MyValue2,
   MyValue3,
   MyValue4,
   MyValue5
}

使用In扩展就变成了:

MyEnum myEnum = MyEnum.MyValue1;
if (myEnum.In(MyEnum.MyValue2,
MyEnum.MyValue3, MyEnum.MyValue5))
{
   //Do Something
}

虽然代码看上去很cool,但是个人认为不太直观,而且意思也没表达清楚。具体什么意思,我没看出来。

XmlSerialize() and XmlDeserialize()

序列化:

employees.XmlSerialize("C:\\employees.xml");

反序列化:

string xml = employees.XmlSerialize();
Employees employees = xml.XmlDeserialize<Employees>();

Repeat()

作者举的例子是:

string separatorLine = "------------------------------------------";
//使用Repeat可以变成
string separatorLine = '-'.Repeat(30);

这个例子我还是认为不够妥当,毕竟你可以new String(‘-',30);

IsMultipleOf()

int i = 234;
if (i % 10 == 0){ }
//变成
if (i.IsMultipleOf(10)){}

还是一样,看似简单,实际则不如i % 10 ==0 看的爽。

当然作者还提供了一些其他扩展,感兴趣的同学可以去上面的地址去看下。

如果要下载的可以在:MBG Extensions Library下载

这里要注意,最好使用IE浏览器来下载,否则也许会碰到下面的情况:

最后在说一句:这个扩展类库也许有用,不过使用第三方插件总是面临着一定的风险,是否值得需要好好的衡量一下,不知道为什么作者取名叫MBG,不禁想起了MLGB。

本文转自LoveJenny博客园博客,原文链接:http://www.cnblogs.com/LoveJenny/archive/2011/10/09/2204158.html,如需转载请自行联系原作者

C# MBG 扩展方法类库 分享相关推荐

  1. 艾伟_转载:自用扩展方法分享

    引言 自从用上扩展方法以来,就欲罢不能了,它们大大提升了我的代码编写效率,现在我已对其产生了高度依赖.在此分享一下自己的常用扩展方法集,方便大家使用. (其中有些是借鉴或挪用自其它博友的文章,在此尤其 ...

  2. mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...

    本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: se ...

  3. 技术图文:C# 语言中的扩展方法

    背景 前段时间,在知识星球立了一个Flag,在总结 Leetcode 刷题的第五篇图文时遇到了扩展方法 这个知识点,于是先总结一下. 1.扩展方法概述 扩展方法能够向现有类型"添加" ...

  4. python中矩阵拼接_numpy实现合并多维矩阵、list的扩展方法

    一.合并多个numpy矩阵 1.首先创建两个多维矩阵 矩阵a的大小为(2,3,2) 矩阵b的大小为(3,2,3) 采用concatentate这个函数就可以合并两个多维矩阵 合并之后应为(5,3,2) ...

  5. C# 3.0 扩展方法

    扩展方法解决问题:以往对已存在的类库进行扩展,可行的方式直接对源代码进行修改或者直接派生. 扩展方法注意事项: 扩展方法必须被定义在一个静态类中,扩展方法自身必须是一个静态方法: 扩展方法中的首个参数 ...

  6. (转)c# 扩展方法

    扩展方法能够向现有类型"添加"方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型.扩展方法必须是静态方法,可以像实例方法一样进行调用.且调用同名中实际定义的方法优先级要 ...

  7. c#扩展方法奇思妙用高级篇四:对扩展进行分组管理

    从系列文章开篇到现在,已经实现的很多扩展了,但过多的扩展会给我们带来很多麻烦,试看下图: 面对这么多"泛滥"的扩展,很多人都会感到很别扭,的确有种"喧宾夺主"的 ...

  8. .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法

    0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到Map.不过当业务逻辑比较复杂的时候,有时候我们可能希望根据情况的不同使用特殊的一组中间件来处理 ...

  9. dotnetCore增加MiddleWare的Run,Use Map MapThen四个扩展方法

    什么是中间件 中间件是在管道中处理Request请求与Responses响应的一种组件,每种组件可以选择是否让Request进入到下一个组件去处理. 译得不好,大家可以自己看原文Middleware ...

最新文章

  1. c#如何操作excel文件、Interior.ColorIndex 色彩列表
  2. react 调用 html5,React-Native Webview 和H5交互的两种方式
  3. vijos 1067 Warcraft III 守望者的烦恼 矩阵
  4. EditPlus 文件查找功能:在指定文件夹,用正则查寻包含指定内容的文件,指定文件类型,并排除特殊文件名文件
  5. cdn加载vue很慢_Vue.js 项目打包优化实践
  6. vue3 element el-tree 默认选中某个节点高亮
  7. nginx 配置反向代理和负载均衡
  8. 手rm-linux联网后自动dhcp,Linux操作系统下DHCP基础配置
  9. 盘点一下数据库的误操作都有哪些后悔药?
  10. HTML5 Web SQL实现简单的增删改查websql使用方法vue2.0使用websql实现浏览器存储
  11. 云编程那些事4 - 不造巴比伦塔
  12. [ZZ]Sign Up for the First-Ever Appium Roadshow on August 20th in New York City
  13. 关于Eclipse4.7安装TomcatPlugin后无法显示三只猫问题
  14. 2021年9月国产数据库排行榜:达梦奋起直追紧逼OceanBase,openGauss反超PolarDB再升一位...
  15. SQL语句中,为什么where子句不能使用列别名,而order by却可以?
  16. 亚马逊防关联怎么做?软关联硬关联有什么?
  17. 一个工厂有m条流水线
  18. python打开json文件_python怎么读json文件
  19. python回归取残差_R/python-回归分析
  20. CRA模式下的效验标准体系,php最新含量技术

热门文章

  1. 《编写有效用例》导读书评——“Jolt大奖精选丛书”有奖征文
  2. 亿条数据读取工具_仅需1秒!搞定100万行数据:超强Python数据分析利器
  3. PHP不能精确表达小数 PHP除法结果不准确 php 为什么数字除法不准确 PHP浮点数运算不准确的问题...
  4. sklearn多分类问题
  5. 使用云服务器安装QEMU搭建嵌入式开发环境
  6. Linux-grep 命令和find 命令 (6)
  7. scala技术文章集锦
  8. 为什么我们有时不用配置java环境变量?
  9. 加强IIS安全机制 建立高安全性能Web服务器
  10. yaml 文件格式简介