这是你的意思吗?
bool? Any
{
get
{
return ((this.ViewState["any"] as bool?) ?? false) && this.SomeBool;
}
}
我已将返回值保留为bool?但它看起来可以改变为布尔值。
这个测试是这样的:
class Program
{
private static readonly Dictionary<string, object> ViewState = new Dictionary<string, object>();
private static bool SomeBool;
static void Main(string[] args)
{
ViewState["any"] = (bool?)null; SomeBool = true; Console.WriteLine(Any);
ViewState["any"] = (bool?)false; SomeBool = true; Console.WriteLine(Any);
ViewState["any"] = (bool?)true; SomeBool = true; Console.WriteLine(Any);
ViewState["any"] = (bool?)null; SomeBool = false; Console.WriteLine(Any);
ViewState["any"] = (bool?)false; SomeBool = false; Console.WriteLine(Any);
ViewState["any"] = (bool?)true; SomeBool = false; Console.WriteLine(Any);
Console.ReadLine();
}
static bool? Any
{
get
{
return ((ViewState["any"] as bool?) ?? false) && SomeBool;
}
}
}
返回
False
False
True
False
False
False
这里的行为是不完全一样的原为空应该是测试用例1返回,4是相同。但也许这种行为不是必需的?
你为什么会想用这个?运营商?为了缩短它? – 2010-04-27 22:31:27
@亨克霍尔特曼:是的。并为操作员使用练习。 – abatishchev 2010-04-27 22:33:24