可能重复:
What does the tilde before a function name mean in C#?
What is the tilde (~) in the enum definition?
我知道“〜”用于Finalzier方法,但现在我看到了一些像这样的C#代码:
if (~IsFieldDeleted(oRptField.GetLayoutField()) != 0)
{
oCollection.Add(oRptField, oRptField.ObjectKeyString);
// some more stuff
}
注意第一行中的“〜”?
然后如果我去实现IsFieldDeleted它是一个返回int的方法。
private int IsFieldDeleted(LayoutLib.LayoutField oLayoutField)
{
Collection oColl = GetFieldIdsForField(oLayoutField);
return (oColl.Count == 0) ? 1 : 0;
}
答案 0 :(得分:2)
~
运算符执行按位补码。
IsFieldDeleted()
返回 int ,这是一个可以应用该运算符的类型(int,uint,long,ulong)。采用按位补码,然后将其与零进行比较。
我没有看到if(...)
如何成为真,因为IsFieldDeleted()
只返回0或1而且〜0和〜1都不为零。