这种技术在c#中叫什么?
本文关键字:什么 技术 | 更新日期: 2023-09-27 18:19:08
我想在某个属性中定义一个对象,但我不知道怎么做。这样的:
var obj = ...;
obj["prop1"] = "Property 1";
obj["prop2"] = "Property 2";
我可以创建一个字符串来获取其中一个:
string temp = "prop1";
string prop1 = obj[temp];
在c#中是可能的吗?
你需要的是一本字典:
var obj = new Dictionary<string, string>();
obj.Add("prop1", "Property1");
Console.WriteLine(obj["prop1"]);
如果属性定义良好,我建议创建一个类:
public class MyObject
{
public string Prop1;
public string Prop2;
}
那么你可以这样做:
var obj = new MyObject
{
Prop1 = "Property 1",
Prop2 = "Property 2"
};
Console.WriteLine(obj.Prop1); //Will echo out 'Property 1'
Dictionary<string,string> obj = new Dictionary<string,string>();
obj.Add("prop1","Property 1");
obj.Add("prop2","Property 2");
string temp = obj["prop1"];
你所做的叫做索引器。您可以向类添加索引器。它通常有1个或多个参数。
调用索引器:
要调用索引器,使用该类的实例并在名称末尾添加[]
。然后,将参数添加到[]
中。让我们以字符串为例。在string类中,有一个索引器,它接受类型为int
的参数。它获取字符串的该索引处的字符。
char theFirstChar = someString[0];
索引器也可以接受多个参数:
int[,] matrix = new int[10, 10]; //Note: This is not an indexer
int someValue = matrix[9, 4]; //This is
语法:
您可以这样定义索引器:(我使用了字符串示例)
public char this[int i]
{
get
{
// code
}
set
{
// code
}
}
字典,见底部https://msdn.microsoft.com/en-us/library/xfhwa508%28v=vs.110%29.aspx
最接近c#的是Dictionary<TKey, TValue>
源:设置数组键为字符串而不是int?
在c#中叫做ExpandoObject
见https://www.google.com/webhp?sourceid=chrome-instant&离子= 1,espv = 2, ie = utf - 8 # q = c % 23% 20 expandoobject