C# 强制转换变量以设置新值
我试图将输出视为“200”。我从一个平面文件中有大约400个不同设置的变量名,我需要加载配置,但很难转换类型来设置设置C# 强制转换变量以设置新值,c#,C#,我试图将输出视为“200”。我从一个平面文件中有大约400个不同设置的变量名,我需要加载配置,但很难转换类型来设置设置 private double test1 = 100; private void button1_Click(object sender, EventArgs e) { double testNewType = (double)test1; testNewType = 200; Debug.Print(te
private double test1 = 100;
private void button1_Click(object sender, EventArgs e) {
double testNewType = (double)test1;
testNewType = 200;
Debug.Print(test1.ToString());
}
您正在打印test1,而不是testNewType
Debug.Print(test1.ToString())代码>
Debug.Print(testNewType.ToString())代码>
如果您试图通过引用传递,我不确定C#是否可以通过双打来传递,而且在您投射时肯定不能。如果您想设置字段,可以通过反射来传递:
/*
获取类型,也可以使用
var type=this.GetType();
*/
var type=typeof(您的classnamewithfields);
/*
添加BindingFlags.DeclaredOnly
如果只想在当前类中设置声明的字段(忽略继承)
*/
var fields=type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
foreach(字段中的变量字段){
//targetObject是要设置其值的对象,可以是
字段设置值(targetObject,newValue);
}
您还可以使用dynamic
type,如下所示:
dynamic obj=yourObject;
obj.fieldName=值;
double不是引用类型,所以testNewType
只是内容的副本。所以要从文本文件加载设置,唯一的方法是键入400 if语句,检查double变量的名称并设置其值?这是否回答了您的问题?所以要从文本文件加载设置,唯一的方法是键入400 if语句,检查双变量的名称并设置其值?您可以像在其他注释中一样使用反射。您还可以创建一个哈希表(或字典,不确定它在c#中的名称)并将变量名作为索引,如果这样做对您更有意义的话。然后,您可以使用文本文件中的名称指定值,并在以后使用相同的名称引用它们。