• C#中何时使用dynamic


    背景:比如说,有一个方法,有很多参数,且有时候只需要其中的某几个参数,有时候需要使用全部,甚至有时候一个都不需要,这时候写一个长长的参数列表一点都不酷,且容易 出错,这时候就需要考虑C#的dynamic类型来作为参数了。在操作sql语句的操作时尤为常见。

    代码如下:

     1         public static void TestDynamic()
     2         {
     3             dynamic d = new ExpandoObject();
     4             d.Name = "sharpL";
     5             d.Age = 25;
     6             d.City = "北京";
     7             dosth(d);
     8         }
     9 
    10         public static void dosth(dynamic d1)
    11         {
    12             string tmp = "";
    13             //把动态类型强制转换为字典类型
    14             var kvs = (IDictionary<string, object>)d1;
    15             if(kvs.ContainsKey("Name"))
    16             {
    17                 tmp += "  我的名字是"+kvs["Name"];
    18             }
    19             if (kvs.ContainsKey("Age"))
    20             {
    21                 tmp += "   我的年龄是" + kvs["Age"];
    22             }
    23             if (kvs.ContainsKey("Fun"))
    24             {
    25                 tmp += "   我的爱好是" + kvs["Fun"];
    26             }
    27             if (kvs.ContainsKey("City"))
    28             {
    29                 tmp += "   我的城市是" + kvs["City"];
    30             }
    31             Console.WriteLine(tmp);
    32         }
    33     }

      如上,我们可能只输入姓名,而有时可能需要输入所有的信息,用dynamic只需要一个方法就可以解决了,又不用输入长长的参数列表。

      这种情况常用于数据库查询或插入操作,尤其是插入操作中,有些表格有很多字段,我们总不能将每个字段都作为一个参数,那样真的蛮傻的,上面的代码只是一个例子。

  • 相关阅读:
    内存问题再次注意
    数据分析(基础/数组)
    总结
    scrapy框架
    selenium
    chromedriver设置无界面模式 selenium基础操作
    selenium+phantomjs/Chrome/Firefox
    json解析模块
    cookie模拟登录
    常用正则
  • 原文地址:https://www.cnblogs.com/SharpL/p/4705851.html
Copyright © 2020-2023  润新知