• C# MBG 扩展方法类库 分享


    前阵子在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浏览器来下载,否则也许会碰到下面的情况:

    image

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

  • 相关阅读:
    ES6、ES7、ES8特性
    【react】XXX项目环境搭建
    map
    vector
    list
    米勒素数模板
    POJ-2421-Constructing Roads(最小生成树 普利姆)
    HDU1301 Jungle Roads(Kruskal)
    Truck History(prime)
    phpstorm快捷键和激活
  • 原文地址:https://www.cnblogs.com/LoveJenny/p/2204158.html
Copyright © 2020-2023  润新知