从Class对象访问枚举

时间:2012-07-19 11:24:25

标签: c# class object enums

我正在尝试开发一个可以用来在SQLite中动态创建表/列的类;我创建了我的课程如下:

public class NewColumns
{
    public string ClmName;

    public Types NewType { get; set; }

    public void SetName(string NewColumn)
    {
        ClmName = NewColumn;
    }
}

public enum Types
{
    INTEGER = 0,
    REAL = 1,
    NUMERIC = 2,
    TEXT = 3,
    BLOB = 4,
}

public static bool CreateTable(string DBPath, string TableName, params NewColumns ClumnName)
{
    bool succ = false;
    mDBcon.ConnectionString = "Data Source=" + DBPath + ".db3";
    mDBcon.Open();
    cmd = new SQLiteCommand(mDBcon);
    cmd.CommandText = "CREATE TABLE IF NOT EXISTS " + TableName + " (ISBN VARCHAR(15), Tag VARCHAR(15));";
    cmd.ExecuteNonQuery();
    return succ;
}

我想将我的新值传递给类:

clsSqlite.CreateTable("test", "newTable", new clsSqlite.NewColumns { ClmName = "", NewType.INTEGER });

但上面代码中的“NewType”无法识别我的枚举值,如果我手动输入枚举值'INTEGER',则会给出以下错误:

无效的初始化成员声明

提前感谢您的帮助。

此致

2 个答案:

答案 0 :(得分:2)

clsSqlite.CreateTable(
    "test", 
    "newTable", 
    new clsSqlite.NewColumns { ClmName = "", NewType = Types.INTEGER });

NewType是您的媒体资源的名称,枚举名称为Types

答案 1 :(得分:0)

将枚举移到类定义之外,你会没事的。

您可以考虑为枚举使用其他名称而不是类型,因为将来可能会让您和其他人感到困惑。

并将您的变量更改为属性。