传递多个参数,选择一个在c#中传递的参数

时间:2014-01-29 12:56:14

标签: c# model-view-controller

调用我的方法:

    fpt.CouttsPositionSection.AssetClassAssets.Add(dataGenerator.GenerateFPTAssetClassAsset(fpt,*different parameter*));

我的方法:

    public FPTAssetClassAsset GenerateFPTAssetClassAsset(FPT fpt, *4 parameters, with different variable names*)
    {
        FPTStaticDataAssetClassAssetlist = db.FPTStaticDataRatedFinancialAssetBase.OfType<FPTStaticDataAssetClassAsset>().Where(e => e.FORATExcelId == 1).ToList();
        var fptdocassets = fpt.CouttsPositionSection.AssetClassAssets.Select(e => e.StaticDataAssetClassAsset).ToList();
        var listTemp = FPTStaticDataAssetClassAssetlist.Where(i => !fptdocassets.Contains(i)).ToList();
        FPTAssetClassAsset a = new FPTAssetClassAsset();
        a.StaticDataAssetClassAsset = listTemp[random.Next(0, listTemp.Count())];
        a.Currency = a.StaticDataAssetClassAsset.Currency;
        a.Description = a.StaticDataAssetClassAsset.Name + " Descr";
        a.Holdings.Add(GenerateFPTRatedFinancialAssetHolding());
        FillCommonRateFinancialAssetData(a, fpt);
        fpt.UpdateXrates(a.StaticDataAssetClassAsset.CurrencyId);
        return a;
    }

当我运行该方法时,将使用4个不同的参数调用4次。如果我设置了4个可选参数,那么它们都有不同的变量名。变量名称下面将介于星号之间,但我有4个,那么有没有办法让变量改变它的值或名称?

var fptdocassets = fpt.*variable of parameter passed*.AssetClassAssets

1 个答案:

答案 0 :(得分:0)

我通过传入一个字符串来解决这个问题,并使用以下方法返回它匹配的对象。

    public static object GetPropValue(object src, string propName)
    {
        return src.GetType().GetProperty(propName).GetValue(src, null);
    }