1

私はそのような方法を持っています:

public static void Fill<T> (this DropDownList control,
   Expression<Func<T, object>> value,      
   Expression<Func<T, bool>> whereClause = null,
   Expression<Func<T, object>> orderClause = null,
   string selectedvalue = null) where T : class
{}

ここまでは順調ですが、Wh​​ere 句と Order 句に List オプションを追加する必要があるため、さらに 3 つの新しいメソッドを追加しました。

public static void Fill<T> (this DropDownList control,
   Expression<Func<T, object>> value,      
   IList<Expression<Func<T, bool>>> listWhereClause = null,
   IList<Expression<Func<T, object>>> listOrderClause = null,
   string selectedvalue = null) where T : class
{}

public static void Fill<T> (this DropDownList control,
   Expression<Func<T, object>> value,      
   IList<Expression<Func<T, bool>>> listWhereClause = null,
   Expression<Func<T, object>>> orderClause = null,
   string selectedvalue = null) where T : class
{}

public static void Fill<T> (this DropDownList control,
   Expression<Func<T, object>> value,      
   Expression<Func<T, bool>>> whereClause = null,
   IList<Expression<Func<T, object>>> listOrderClause = null,
   string selectedvalue = null) where T : class
{}

問題は、あいまいな呼び出しエラーが発生したことです...それを解決するための最良のオプションは(メソッド数を増やすことなく)?

4

1 に答える 1

5

オーバーロードのデフォルト値 ( null) を削除します。デフォルトnull値でオーバーロードを追加したため、コンパイラはどれを使用すればよいかわかりません。

于 2013-06-06T16:54:25.367 に答える