调试期间动态枚举式列表

时间:2013-12-11 15:09:30

标签: c# sql

是否有可能在C#中制作这样的东西?

// Pseudo-code   
enum Tables{}

sql.createTable("Tablename")
Tables.Add("Tablename");

sql.createTable("Tablename2")
Tables.Add("Tablename2");


//and then select the added Tablename from the property list
// like it works with an regular enum list
Tables.Tablename
Tables.Tablename2

1 个答案:

答案 0 :(得分:2)

我会给你一个Adrianos想法的样本:

Dictionary<string, string> tables = new Dictionary<string, string>();

sql.createTable("Tablename");
tables["Tablename"] = "Tablename";

sql.createTable("Tablename2");
tables["Tablename2"] = "Tablename2";

然后,稍后,您可以这样做:

sql.insertIntoTable(tables["Tablename"], value1, ...);

为什么要使用两个键都具有相同名称的字典?这样您就可以通过名称访问表名。如果您只有一个列表,那么您只能通过索引访问表名。

这样,您可以编写tables["Tablename"]并按名称访问表名... oO

还有一个问题:为什么?如果您事先知道表名,那么在进一步调用中只是硬编码该名称会出现什么问题?