我正在尝试将特定代码转换为 C#。
基本上我理解了我正在处理的大部分代码,甚至原始代码的意图。 但我想确保我已经涵盖了所有基础。
这是本主题的第 5 篇文章:http://www.pcreview.co.uk/threads/how-to-use-getwindowlong-properly-in-vb-net.1312789/ 由用户 Kresimir
有问题的代码:
Dim ret As Integer = User32DLL.GetWindowLong(Me.Handle, -16)
Dim s As String = String.Empty
If (ret And WS_BORDER) Then s &= "WS_BORDER" & NewLine
我不明白“If (ret And WS_BORDER)”语句应该做什么,以及如何将其转换为 C#
是吗:
if (ret!=null & WS_BORDER!=null)
还是别的什么?
谢谢。
编辑:注释。如果我使用上面提到的 C# 语句,VS 会提示我“表达式的结果始终为 false,因为“int”类型的值永远不等于“int”类型的“null”?” ^我想我可以忽略它(在我们说话时用谷歌搜索它),但如果 sm1 希望给我一个“免费解释”,我将不胜感激:*
ps。我对此确实是个新手,所以如果我忽略了一些明显的事情,我很抱歉。
最佳答案
之前的答案都不正确:
if((ret & WS_BORDER) != 0)
这是检查变量是否包含标志,在本例中为 WS_BORDER。
关于c# - VB "If(a & b)"中这个语法的含义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726685/