这种技术在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#中是可能的吗?

这种技术在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