源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

基于C# MBG 扩展方法类库的使用详解

  • 时间:2021-04-06 16:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于C# MBG 扩展方法类库的使用详解
以前在CodeProject上看到了一篇文章:[url=http://www.codeproject.com/Articles/116940/MBG-Extensions-Library]MBG Extensions Library [/url]  大致是作者在介绍自己写的扩展方法类库,内容如下: In()
[u]复制代码[/u] 代码如下:
if (myString == "val1" ||    myString == "val2" ||    myString == "val3" ||    myString == "val4" ||    myString == "val5")    {       //Do something    }
使用扩展方法In,可以这样写:
[u]复制代码[/u] 代码如下:
if (myString.In("val1", "val2", "val3", "val4", "val5")) {    //Do something }
Cool! In示例2:
[u]复制代码[/u] 代码如下:
bool found = false; foreach (string s in myList) {    if (myString == s)    {       found = true;       break;    } } if (found) {    //Do something }
使用In扩展,可以写成:
[u]复制代码[/u] 代码如下:
if (myString.In(myList)) {    //Do something }
当然,我个人认为还是myList.contain(myString) 要好点。 如果说只能在string 类型上使用In的话,那么你就错了,作者把In还用在了Enum上。 例如:
[u]复制代码[/u] 代码如下:
public enum MyEnum {    MyValue1,    MyValue2,    MyValue3,    MyValue4,    MyValue5 }
使用In扩展就变成了:
[u]复制代码[/u] 代码如下:
MyEnum myEnum = MyEnum.MyValue1; if (myEnum.In(MyEnum.MyValue2, MyEnum.MyValue3, MyEnum.MyValue5)) {    //Do Something }
虽然代码看上去很cool,但是个人认为不太直观,而且意思也没表达清楚。具体什么意思,我没看出来。 XmlSerialize() and XmlDeserialize() 序列化:
[u]复制代码[/u] 代码如下:
employees.XmlSerialize("C:\\employees.xml");
反序列化:
[u]复制代码[/u] 代码如下:
string xml = employees.XmlSerialize(); Employees employees = xml.XmlDeserialize<Employees>();
Repeat() 作者举的例子是:
[u]复制代码[/u] 代码如下:
string separatorLine = "------------------------------------------"; //使用Repeat可以变成 string separatorLine = '-'.Repeat(30);
这个例子我还是认为不够妥当,毕竟你可以new String(‘-',30); IsMultipleOf()
[u]复制代码[/u] 代码如下:
int i = 234; if (i % 10 == 0){ } //变成 if (i.IsMultipleOf(10)){}
还是一样,看似简单,实际则不如i % 10 ==0 看的爽。 [b]最后在说一句:这个扩展类库也许有用,不过使用第三方插件总是面临着一定的风险,是否值得需要好好的衡量一下,不知道为什么作者取名叫MBG,不禁想起了MLGB。[/b]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部