gpt4 book ai didi

c# - 按位置访问泛型类型的属性

转载 作者:行者123 更新时间:2023-11-30 16:47:36 25 4
gpt4 key购买 nike

我需要使用属性的位置或任何其他类似方式访问泛型类型的属性。

例子:

class model
{
int intValue;
string stringValue;

public model(int a,string b){
this.intValue = a;
this.stringValue= b;
}
}



public class baseClass<T>
{
public string value;

public void process(T param)
{
value = param.Getproperty[0].ToString();
}

}

public class derivedClass : baseClass<model>
{
Console.WriteLine("Converted value:" +process(new model(1,"test")));
//Do something
}

我的基类实际上是一个通用库,它执行一些简单的常见任务。

最佳答案

我可以建议另一种方法吗?

如果你总是有 2 个属性

interface TwoProperties {
object GetProperty1();
object GetProperty2();
}

class Model : TwoProperties {
int intValue;
stringStringValue;

public override object GetProperty1() {
return intValue;
}

public override object GetProperty2() {
return stringValue;
}
}

然后使用 someModel.GetProperty1() 作为例子。

如果您的属性数量未知:

interface SomeProperties {
object[] GetProperties();
}

class Model : SomeProperties {
int intValue;
stringStringValue;

public override object[] GetProperties() {
return new object[] { intValue, stringValue };
}
}

然后使用 someModel.GetProperties()[0],例如。

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

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