我在Google上搜索但结果却是误会。
这是一个代码流程:
public class Store
{
public dynamic GetList(List<string> propertyFields)
{
// Body here
// for in list propertyFields. Such as: ["Code", "Name", "Address", ...]
// dynamic result = ...
// result.Code = "value", result.Name = "abc", result.Address = "homeless", result.... = "..."
// return result
}
}
方法返回一个动态对象
propertyFields是字段名称列表。当我在列表中传递4个字符串时,dynamic有4个属性字段值(稍后)。
当我称这种方法时:
Store store = new Store();
var rs = store.GetList(["Code","Name","Address"])
Console.WriteLine(rs[0].Code)
这是我的观点。
我的问题:是否可以在C#中执行此操作?
答案 0 :(得分:11)
您已经混淆了dynamic
,这是一个编译器功能,意味着&#34;推迟对此对象使用的类型分析,直到运行时&#34;使用ExpandoObject
表示&#34;一个可以在运行时添加属性的对象&#34;。
这是一个可以理解的混乱;许多缺少静态类型检查的语言也有expando对象。
答案 1 :(得分:4)
您需要查看ExpandoObject类。
以下是您问题的更详细解答: