1

页面.aspx:

<a href="#" <%= ToggleUiVisibility(new List<bool>() { true, true, false }) %> >
    link
</a>

C#:

public string ToggleUiVisibility(List<bool> conditions)
{
    return conditions.Any(x=>!x) ? "style=\"display:none;\"" : string.Empty;
}

我想知道是否可以做类似(伪代码)的事情

ToggleUiVisibility(true, true, argsN);

public string ToggleUiVisibility(args)
{
    // make sure each argument is a bool and trigger the same 
    // functionality as above
}
4

2 回答 2

5

使用params关键字:

public string ToggleUiVisibility(params bool[] values)
{
    // make sure each argument is a bool and trigger the same
    // functionality as above
}

然后你可以调用你的方法,如:

ToggleUiVisibility(true, false, ...);
于 2013-11-07T14:41:51.460 回答
2

您可以使用params

public string ToggleUiVisibility(params bool[] conditions)
{
    return conditions.Any(x=>!x) ? "style=\"display:none;\"" : string.Empty;
}

但是你的调用代码将不得不单独拼出每个参数,或者将它们包装在一个数组中:

ToggleUiVisibility(true, true, false);  // works

ToggleUiVisibility(argsN);  // works

ToggleUiVisibility(true, true, argsN);   // does not work - you'll need to "merge" the individual values and the array

ToggleUiVisibility((new bool[] {true, false}).Concat(argsN).ToArray());  // works
于 2013-11-07T14:47:39.210 回答