创建一个从类中返回参数列表(const string)的方法

时间:2014-04-25 08:19:41

标签: c# list parameters return

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

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";

所以我想创建一个函数来返回那些const字符串的列表,它们是car_idnumber_id,类名为CarENParameters但是我还没想出如何通过get返回列表/在类中设置,我应该使用字典或keyvaluespair来实现吗?我对C#很陌生,所以希望我能从你们的帮助中获得更好的观点。感谢

2 个答案:

答案 0 :(得分:1)

你在寻找这样的东西:

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

答案 1 :(得分:0)

您可以使用反射

请勿忘记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)));
        }