按位取反运算符是按照二进制的每一位取反,比如byte类型,~0的结果就是255。
该功能可以在mask中做一些反转操作
如下代码,a存放了2,4,8三个值。用按位取反'~'运算符反转
打印结果是 false,flase,false,true,true。Mask已经被反转
class Program
{
static void Main(string[] args)
{
byte a = | | ;
byte b = (byte)~a; Console.WriteLine((b & ) == );
Console.WriteLine((b & ) == );
Console.WriteLine((b & ) == ); Console.WriteLine((b & ) == );
Console.WriteLine((b & ) == ); Console.Read();
}
}
比如在unity引擎中,该操作可以被使用在LayerMask上:
public class LayerMaskTest : MonoBehaviour
{
public LayerMask layerMask; void OnEnable()
{
layerMask.value = ~layerMask.value;
}
}