C#用字符串引用对象变量

时间:2010-07-22 06:07:00

标签: c#

你好在Actionscript中我可能会引用一个对象中的变量

objectName["variableName"] = "Some value";

我如何在c#

中执行等效操作

感谢

6 个答案:

答案 0 :(得分:1)

词典不是语言的一部分&amp;在框架中提供 使用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);

如您所见,您可以选择使用的数据类型。