2014-09-12 72 views
0

我在這個方法上有這個錯誤。調用時參數計數不匹配

public static FReturn<T> GetByParameters<T>(FObjectParametersb parameters, bool useOr = false) where T : new(); 


public class FObjectParameters : ICollection<FObjectParameter>, IEnumerable<FObjectParameter>, IEnumerable 
{ 
    //some code 
} 

var parameters = new FObjectParameters(); 

foreach (KeyValuePair<string, string> item in Param) 
    parameters.Add(item.Key, item.Value); 

var getMethod = MainType.BaseType.BaseType.GetMethod("GetByParameters").MakeGenericMethod(MainType); 

object Invoke = getMethod.Invoke(null, new object[] { parameters }); 
+1

你必須明確地設置你的可選參數 – HimBromBeere 2014-09-12 12:04:37

+0

你是對的! – Mert 2014-09-12 12:06:36

回答

1

看來你需要提供的可選參數

object Invoke = getMethod.Invoke(null, new object[] { parameters, false }); 

我想這是因爲你直接反射調用方法,所以沒有編譯器magic.I當您使用可選的猜想參數如果你不提供可選的參數編譯器通過傳遞默認值調用方法。所以在這種情況下,你需要提供它,即使它的可選...

相關問題