在下面的两种方法中,您更喜欢阅读哪种方法?
还有另一种(更好的?)方法来检查是否设置了标志?
bool CheckFlag(FooFlag fooFlag)
{
return fooFlag == (this.Foo & fooFlag);
}
Run Code Online (Sandbox Code Playgroud)
和
bool CheckFlag(FooFlag fooFlag)
{
return (this.Foo & fooFlag) != 0;
}
Run Code Online (Sandbox Code Playgroud)
这两个表达式做了不同的事情(如果fooFlag有多个位设置),那么哪个更好取决于你想要的行为:
fooFlag == (this.Foo & fooFlag) // result is true iff all bits in fooFlag are set
(this.Foo & fooFlag) != 0 // result is true if any bits in fooFlag are set
Run Code Online (Sandbox Code Playgroud)
bool CheckFlag(FooFlag fooFlag)
{
return fooFlag == (this.Foo & fooFlag);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1979 次 |
最近记录: |