C#类型参数的约束对bool使用什么

时间:2014-08-02 09:01:58

标签: c# asp.net-mvc-3

public static MvcHtmlString CheckBoxListFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression) where TValue : bool

bool无效。 Boolean也无效。我可以用什么? TValue必须是bool

编辑:我正在为mvc3编写HTMLHELPER,稍后将其用作html.CheckBoxFor(expression),因此TValue必须是通用的

3 个答案:

答案 0 :(得分:0)

如果TValue必须是bool,那么它就是通用的。

public static MvcHtmlString CheckBoxListFor<TModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, bool>> expression)

答案 1 :(得分:0)

然后只需删除TValue类型参数,并将其替换为bool

public static MvcHtmlString CheckBoxListFor<TModel>(this HtmlHelper<TModel> html, Expression<Func<TModel, bool>> expression)

答案 2 :(得分:0)

从您的评论中,我认为您需要两种不同的重载:

public static MvcHtmlString CheckBoxListFor<TModel>(this HtmlHelper<TModel> html,
    Expression<Func<TModel, bool>> predicateExpression)

public static MvcHtmlString CheckBoxListFor<TModel, TValue>(this HtmlHelper<TModel> html,
    Expression<Func<TModel, TValue>> expression)

在内部,您可以共享内部实现并添加所需内容。