创建一个从类返回参数列表(const字符串)的方法

本文关键字:const 列表 字符串 方法 参数 一个 创建 返回 | 更新日期: 2023-09-27 17:59:57

我正在开发一个包含一些常量字符串的类

public static class Constants
{
    public const string CarID= "car_id";
    //public const string NumberID= "number_id"; // this is the second const string might be added, so 
    //the new created function can return the two
}
public class CarENParameters
{
    public string Params { get; set; }
    public CarENParameters(string carId)
    {
        Params = carId;
    }
}
public static class CarPropertyProcess
{
    //test params
    public static CarENProps Parse(Uri uri,string content)
    {
        string carID= Regex.Matches(content, @"'$'('#CarXL'')'.val'(('d+)')", RegexOptions.None)[0].Groups[1].Value;
        var parameters = new Dictionary<string, string>
        {
            {Constants.CarID, carID},        
        };
        return new CarENProps(uri.AbsoluteUri, parameters);
    }
    public static CarENParameters GetParameters()
    {
        return new CarENParameters(Constants.CarID);
    }
}

在类Constants中,我有一个carID,现在的情况是它可能有多个const字符串,比如:public const string NumberID= "number_id";

因此,我想创建一个函数来返回这些常量字符串的列表,它们是类名为CarENParameters的car_idnumber_id,但我还没有弄清楚如何通过类中的get/set返回列表,我应该使用dictionary或keyvaluespair来实现这一点吗?我对C#还很陌生,所以希望在你们的帮助下我能有一个更好的观点。感谢

创建一个从类返回参数列表(const字符串)的方法

你在寻找这样的东西吗:

public static List<CarENParameters> GetParameters()
{
    return new List<CarENParameters>()
           {
                new CarENParameters(Constants.CarID1),
                new CarENParameters(Constants.CarID2),
                new CarENParameters(Constants.CarID3)
           }
}

您可以对此使用反射

别忘了放using System.Reflection;

        // get class type
        Type type = typeof(Constants);
        // get a list of fields
        FieldInfo[] fields = type.GetFields();
        List<CarENParameters> list = new List<CarENParameters>();
        // loop on field list
        foreach (FieldInfo field in fields)
        {
            // if field is a string add it to our return list
            if (field.FieldType == typeof(String))
                list.Add(new CarENParameters((String) field.GetValue(null)));
        }