首页 > 解决方案 > 如何从 C# 中的选定类中获取变量的值?

问题描述

我想在一个类的几个变量中获取所需变量的值

当我将字符串和类放入方法中时,该方法返回与类中包含的所有变量中接收到的字符串同名的变量的值。

该方法可以获取任何类型的类。所以这个方法需要使用泛型。

有人对我的问题有好主意吗?

public class A
{
    public int valA_int;
    public string valA_string;
    public float valA_float;
    public long valA_long;
}

public class B
{
    public int valB_int;
    public string valB_string;
    public float valB_float;
    public long valB_long;
}

public static class Method {
    public static object GetvalueFromClass<T>(string varName, T classType) {
        //Find val from class
        return object;
    }
}

public class Program {
    public A aClass;
    public B bClass;
    public void MainProgram() {
        object valA_int = Method.GetvalueFromClass("valA_int", aClass);
        object valB_long = Method.GetvalueFromClass("valB_long", bClass);
    }
}

方法的概念是这样的。

请帮我找出我的问题。

标签: c#

解决方案


您的任务已经定义。

如果你使用

#{Class}.GetType().GetProperty(#{VariableName}).GetValue(#{DefinedClass}, null);

您可以使用变量名轻松地从您的类中获取变量。

它返回变量作为对象。所以你需要转换它

示例代码

CLASS YourClass = [A CLASS WHICH IS PRE DEFINED];
object Target = YourClass.GetType().GetProperty("YOUR VARIABLE").GetValue(YourClass , null);

推荐阅读