你好在Actionscript中我可能会引用一个对象中的变量
objectName["variableName"] = "Some value";
我如何在c#
中执行等效操作感谢
答案 0 :(得分:1)
词典不是语言的一部分&在框架中提供
使用Dictionary<Key, Value>
。
e.g。
Dictionary<string, string> myData = new Dictionary<string, string>();
myData.Add("first", "stack");
myData.Add("second", "overflow");
Console.WriteLine(myData["first"]);
答案 1 :(得分:1)
你可以使用字典......
using System.Collections.Generic;
public class x{
public method1() {
var objectName = new Dictionary<string, object>();
objectName["variableName"] = "Some value";
}
}
或者,使用强类型属性(更安全和快速运行),建议您在编译时知道变量名称。
public class Person{
public string Name {get;set;}
public int Age {get;set;}
}
// and use it as follows in your functions
var person1 = new Person() {
Name = "Fred",
Age = 21,
};
// again, to demonstrate different syntax to do same thing
var person2 = new Person();
person2.Name = "Danny";
person2.Age = 2;
person2.Age = "x"; // won't compile - expects int, hence safer
答案 2 :(得分:1)
取决于。
如果你真的是指你想要的对象:
objectName.variableName = "Some value";
如果你想要一个Map(也称为关联数组),你最好的解决方案是一个词典:
Dictionary<string, string> d = new Dictionary<string, string>()
d["variableName"] = "Some value";
答案 3 :(得分:0)
什么类型的变量?听起来像字典/哈希表最适合。它们具有索引运算符[]
,因此语法将完全相同。
答案 4 :(得分:0)
C#没有“带变量的对象”。 C#对象具有像MyObject.PropertyName一样访问的属性。
答案 5 :(得分:0)
您所指的是一个键值集合。 Dictionary是C#的实现。请注意,字典仅允许唯一键。你可以一般地使用它,这样就可以像这样使用它。
Dictionary<string, string> myValues = new Dictionary<string, string>();
myValues.Add("variableName", "variableValue");
或
Dictionary<string, int> familySizes = new Dictionary<string, int>();
familySizes.Add("simpsons", 5);
如您所见,您可以选择使用的数据类型。