码迷,mamicode.com
首页 > Windows程序 > 详细

C#中何时使用dynamic

时间:2015-08-05 22:10:03      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

背景:比如说,有一个方法,有很多参数,且有时候只需要其中的某几个参数,有时候需要使用全部,甚至有时候一个都不需要,这时候写一个长长的参数列表一点都不酷,且容易 出错,这时候就需要考虑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只需要一个方法就可以解决了,又不用输入长长的参数列表。

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

C#中何时使用dynamic

标签:

原文地址:http://www.cnblogs.com/SharpL/p/4705851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!