c# - 此 C# 语句的 VB.NET 版本是否需要 unchecked 关键字?

标签 c# vb.net code-translation

我正在转换为 VB.NET,它不提供 unchecked 关键字。但在这个声明中似乎没有必要:

const int dwAccess = unchecked((int)0xC0000000);

我在这里有两个观察结果:

  1. dwAccess 声明为常量
  2. 分配的值正好在 System.Int32
  3. 的范围内

考虑到这些,是否安全:

Const dwAccess As Integer = &HC0000000

在这种情况下使用它:

[DllImport("Kernel32", CharSet = CharSet.Auto, SetLastError = true)]
private static extern SafeFileHandle CreateFile(string lpFileName, int dwAccess, int dwShareMode,
                                                IntPtr securityAttrs, int dwCreationDisposition,
                                                int dwFlagsAndAttributes, IntPtr hTemplateFile);

澄清:这个问题不是关于unchecked关键字在C#中是否必要的问题。 显然是。这是关于 VB.NET 中缺少关键字是否会妨碍语句的成功转换。

最佳答案

答案是肯定的。它是多余的,可以删除。

unchecked (C# Reference)

The unchecked keyword is used to suppress overflow-checking for integral-type arithmetic operations and conversions.


更新,这个答案应该是合格的。

如果未选中原始 VB.NET 代码,则等效的 C# 代码也将以相同的方式发挥未选中的功能。两者都会溢出,并且都会给出相同的结果。

关于c# - 此 C# 语句的 VB.NET 版本是否需要 unchecked 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50303185/

相关文章:

C# Visual Studio 需要引用基类 dll

c# - Active Reports 9 : Multi-Colum SectionReport, 这可能吗?

vb.net - 在内联 if 语句中将变量设置为空值

c# - 无法使用 JavaScriptDateTimeConverter 解析数据

c# - Entity Framework 中对象属性中的 NULL 值

c# - 如何将图标添加到语义 ui 下拉列表?

c# - 从多个线程访问 word 文档的单词列表

machine-learning - 用于生成新编程语言语法的神经网络

c - 汇编 如何将操作码 DIV 转换为 C 代码

java - 将一些 Java 转换为 C#