gpt4 book ai didi

c# - 按索引访问属性

转载 作者:行者123 更新时间:2023-11-30 13:40:28 24 4
gpt4 key购买 nike

我需要通过索引或类似的方式访问属性。 this already answered question 中解释了原因。 .该答案使用 Linq,我更喜欢没有这种依赖性的东西。我无法控制类。

public class myClass
{
private string s = "some string";
public string S
{
get { return s; }
}
}

class Program
{
static void Main(string[] args)
{
myClass c = new myClass();
// I would like something similar
// or same functionality
string s = c["S"];
}
}

最佳答案

由于您无法控制类,您可以使用扩展方法和反射来按名称获取属性值:

static class ObjectExtensions
{
public static TResult Get<TResult>(this object @this, string propertyName)
{
return (TResult)@this.GetType().GetProperty(propertyName).GetValue(@this, null);
}
}

用法:

class A
{
public string Z
{
get;
set;
}

public int X
{
get;
set;
}
}

class Program
{
static void Main(string[] args)
{
A obj = new A();
obj.Z = "aaa";
obj.X = 15;

Console.WriteLine(obj.Get<string>("Z"));
Console.WriteLine(obj.Get<int>("X"));
Console.ReadLine();

}
}

关于c# - 按索引访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7814591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com