将一些VB位fidding转换为c#

将一些VB位fidding转换为c#,c#,vb.net,bit-manipulation,C#,Vb.net,Bit Manipulation,我在一些非常古老的VB代码中遇到了这一点: If (Ans.FormatFlags And StringFormatFlags.NoClip) <> 0 Then FF = FF And Not StringFormatFlags.NoClip 不起作用,因为你不能申请!到一个有国旗的地方 !(int)StringFormatFlags.NoClip 不起作用,因为你不能申请!到整数 我要用吗!=这里是0还是有更简单的内嵌方法?简言之,该语句说,“如果设置了NoClip标

我在一些非常古老的VB代码中遇到了这一点:

If (Ans.FormatFlags And StringFormatFlags.NoClip) <> 0 Then
    FF = FF And Not StringFormatFlags.NoClip
不起作用,因为你不能申请!到一个有国旗的地方

!(int)StringFormatFlags.NoClip
不起作用,因为你不能申请!到整数


我要用吗!=这里是0还是有更简单的内嵌方法?

简言之,该语句说,“如果设置了NoClip标志,则清除FF中的相关标志。”在C中,请尝试:


简言之,该语句说,“如果设置了NoClip标志,则清除FF中的相关标志。”在C#try中:


简言之,该语句说,“如果设置了NoClip标志,则清除FF中的相关标志。”在C#try中:


简言之,该语句说,“如果设置了NoClip标志,则清除FF中的相关标志。”在C#try中:


我相信这些是位运算符。该语句的含义是“如果Ans.FormatFlags设置了位StringFormatFlags.NoClip,请从FF中清除StringFormatFlags.NoClip”。所以你的陈述可以是这样的:

if ((Ans.FormatFlags & StringFormatFlags.NoClip) != 0)
    FF = FF & (~(int)StringFormatFlags.NoClip);


(更新:多亏了Enum的HasFlag的B和mising类型转换的Maury)

我相信这些是位运算符。该语句的含义是“如果Ans.FormatFlags设置了位StringFormatFlags.NoClip,请从FF中清除StringFormatFlags.NoClip”。所以你的陈述可以是这样的:

if ((Ans.FormatFlags & StringFormatFlags.NoClip) != 0)
    FF = FF & (~(int)StringFormatFlags.NoClip);


(更新:多亏了Enum的HasFlag的B和mising类型转换的Maury)

我相信这些是位运算符。该语句的含义是“如果Ans.FormatFlags设置了位StringFormatFlags.NoClip,请从FF中清除StringFormatFlags.NoClip”。所以你的陈述可以是这样的:

if ((Ans.FormatFlags & StringFormatFlags.NoClip) != 0)
    FF = FF & (~(int)StringFormatFlags.NoClip);


(更新:多亏了Enum的HasFlag的B和mising类型转换的Maury)

我相信这些是位运算符。该语句的含义是“如果Ans.FormatFlags设置了位StringFormatFlags.NoClip,请从FF中清除StringFormatFlags.NoClip”。所以你的陈述可以是这样的:

if ((Ans.FormatFlags & StringFormatFlags.NoClip) != 0)
    FF = FF & (~(int)StringFormatFlags.NoClip);



(更新:多亏了Enum的HasFlag和Misg类型演员的Maury的B)

google创造了奇迹。。。我猜
Ans.FormatFlags
属于
StringFormatFlags
类型,因此“if”语句检查是否设置了NoClip标志。第二条语句在FF中取消设置标志,因此要使用布尔运算取消设置标志,可以使用波浪号(~),如
FF&=~StringFormatFlags.NoClip
,只要FF的类型也是
StringFormatFlags
。google的工作很神奇。。。我猜
Ans.FormatFlags
属于
StringFormatFlags
类型,因此“if”语句检查是否设置了NoClip标志。第二条语句在FF中取消设置标志,因此要使用布尔运算取消设置标志,可以使用波浪号(~),如
FF&=~StringFormatFlags.NoClip
,只要FF的类型也是
StringFormatFlags
。google的工作很神奇。。。我猜
Ans.FormatFlags
属于
StringFormatFlags
类型,因此“if”语句检查是否设置了NoClip标志。第二条语句在FF中取消设置标志,因此要使用布尔运算取消设置标志,可以使用波浪号(~),如
FF&=~StringFormatFlags.NoClip
,只要FF的类型也是
StringFormatFlags
。google的工作很神奇。。。我猜
Ans.FormatFlags
属于
StringFormatFlags
类型,因此“if”语句检查是否设置了NoClip标志。第二条语句在FF中取消设置标志,因此要使用布尔运算取消设置标志,可以使用波浪号(~),如
FF&=~StringFormatFlags.NoClip
,只要FF的类型也是
StringFormatFlags
。这不会编译。。。您的意思是使用按位not运算符(
~
)?它不编译。。。您的意思是使用按位not运算符(
~
)?它不编译。。。您的意思是使用按位not运算符(
~
)?它不编译。。。你的意思是使用按位not运算符(
~
)?你也可以用稍微更惯用的:
Ans.FormatFlags.HasFlag(StringFormatFlags.NoClip)
为什么要加括号?我想我喜欢HasFlag解决方案,因为它清楚地说明了它要做什么。谢谢你们,像冠军一样工作!实际上,它需要一个小改动:`FF&=(~(int)StringFormatFlags.NoClip)`您还可以使用稍微更惯用的方法检查标志:
Ans.FormatFlags.HasFlag(StringFormatFlags.NoClip)
为什么要使用额外的括号?我想我喜欢HasFlag解决方案,因为它清楚地说明了它要做什么。谢谢你们,像冠军一样工作!实际上,它需要一个小改动:`FF&=(~(int)StringFormatFlags.NoClip)`您还可以使用稍微更惯用的方法检查标志:
Ans.FormatFlags.HasFlag(StringFormatFlags.NoClip)
为什么要使用额外的括号?我想我喜欢HasFlag解决方案,因为它清楚地说明了它要做什么。谢谢你们,像冠军一样工作!实际上,它需要一个小改动:`FF&=(~(int)StringFormatFlags.NoClip)`您还可以使用稍微更惯用的方法检查标志:
Ans.FormatFlags.HasFlag(StringFormatFlags.NoClip)
为什么要使用额外的括号?我想我喜欢HasFlag解决方案,因为它清楚地说明了它要做什么。谢谢你们,像冠军一样工作!实际上,它需要一个小改动:`FF&=(~(int)StringFormatFlags.NoClip)`