2010-07-22 38 views
2

喜在Actionscript中我可以指的是可变正是如此C#引用一个对象中的对象与字符串变量

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

我会怎么做在C#中相当于

感谢

+0

变量名称与db中的列名称相匹配,所以不是匹配每一个,而只是想循环列名并填充相应的变量 – Chin 2010-07-22 06:15:08

+0

似乎您有一些想法要完成。到目前为止,你的C#代码是什么? – BoltClock 2010-07-22 06:45:21

回答

1

字典不框架中提供了&的部分语言。使用Dictionary<Key, Value>

例如

Dictionary<string, string> myData = new Dictionary<string, string>(); 

myData.Add("first", "stack"); 
myData.Add("second", "overflow"); 

Console.WriteLine(myData["first"]); 
0

什么类型的变量?这听起来像是一本字典/哈希表是最适合的。这些索引运算符为[],因此语法将相同。

0

C#没有“带变量的对象”。 C#对象具有像MyObject.PropertyName一样访问的属性。

+1

呃...是的,他们被称为领域,但他们是这样的:对象级别的变量。 – 2010-07-22 06:15:15

+0

我从来没有听到有人将某个字段引用为“对象变量” – 2010-07-22 15:48:23

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 
1

这取决于。

如果你真正的意思是一个对象,你想:

objectName.variableName = "Some value"; 

如果你想有一个地图(也称为关联数组)的最佳解决方案是一个字典:

Dictionary<string, string> d = new Dictionary<string, string>() 
d["variableName"] = "Some value"; 
0

什么你”重新引用是一个关键值集合。一个字典是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); 

正如你可以看到你可以选择什么样的数据类型使用。