我在enum变量中得到了值,但在将它分配给另一个enum类型的变量时,它总是得到0 ...这是我正在使用的代码,dbProperties是类DBProperties的对象,它具有DBType类型的成员。 dbProperties.DBType总是在为其赋值后返回0 ...请帮助......!
DBType val = (DBType)cbDataType.SelectedIndex;
cbDataType.SelectedIndex = (int)val;
dbProperties.DBType = val;
答案 0 :(得分:0)
所以dbProperties.DBType是DBType类型的变量的名称?
不确定为什么总会返回0,但我认为这与将值分配给枚举无关。
运行此代码,例如:
enum DBType
{
Int,
Bool,
String
}
class DBProperties
{
public DBType DBType;
}
class Program
{
static void Main(string[] args)
{
DBType d = (DBType)2;
DBProperties p = new DBProperties();
p.DBType = d;
Console.WriteLine((int)p.DBType); //outputs 2
Console.ReadLine();
}
}
答案 1 :(得分:0)
为了让人们帮助你,你需要对问题更加明确和具体。
你确定val
并不总是零吗?如果您始终在下拉框中选择第一个选项,则selectedIndex将始终为零。
答案 2 :(得分:0)
这对我来说很好。我想你有一个表格,你有一个下拉组合框,里面有物品。所以我复制了这个,这是代码。下拉列表中填充的项目(在序列中)与下面的代码(enum DBType)中显示的项目相匹配,并显示在附加的第一张图像中
enum DBType { Int, Double, Float, Bool, String }
class DBProperties
{
private DBType dbType;
public DBType DBType { get { return dbType; } set { dbType = value; } }
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void cbDataType_SelectedIndexChanged(object sender, EventArgs e)
{
DBType val = (DBType)cbDataType.SelectedIndex;
cbDataType.SelectedIndex = (int)val;
var dbProperties = new DBProperties();
dbProperties.DBType = val;
}
}
dbProperties.DBType属性已正确设置为下拉列表中选定的项目。
在下拉列表中选择“bool”时,属性设置为“Bool”,如第二张图片所示。