VB.Net和C#.Net有啥差异?优缺点是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB.Net和C#.Net有啥差异?优缺点是啥?相关的知识,希望对你有一定的参考价值。

.NET是平台,vb.net,c#.net就是.net平台下的两种编程语言,如果你对vb比较熟悉,可以去学习vb.net,其实就相当于vb在.net下的升级版,但向后兼容性不是很好。追问

VB没学,VB.Net才自学了一些。C#.Net也刚接触一点。

追答

编程语言随便学习一门即可,学完一门 上手其他会非常快。主要是思想。

参考技术A 实现都基本一样,书写语法完全不同
VB.net书写代码更加智能---vb6的建议转vb.net
c#用的人比较多,适合有C基础的追问

VB没学,VB.Net才自学了一些。C#.Net也刚接触一点。

追答

如果是一遍空白,建议学C#,毕竟和C,C++长得像

VB.NET 中“(字节)”的等价物是啥?

【中文标题】VB.NET 中“(字节)”的等价物是啥?【英文标题】:What is the equivalent of "(byte)" in VB.NET?VB.NET 中“(字节)”的等价物是什么? 【发布时间】:2012-08-30 08:05:45 【问题描述】:

VB.NET中(byte)的等价物是什么:

C#:

uint value = 1161;
byte data = (byte)value;

数据 = 137

VB.NET:

  Dim value As UInteger = 1161
  Dim data1 As Byte = CType(value, Byte)
  Dim data2 As Byte = CByte(value)

异常:算术运算导致溢出。

如何才能获得与 C# 相同的结果?

【问题讨论】:

一个字节可能存储255(无符号),C#默默地转换值,而VB好像没有。 【参考方案1】:

要获取最重要的字节,您可以做一些相当hackalicious

Dim data1 = BitConvertor.GetBytes(value)(0)

这是明确的,您不需要禁用溢出检查。

【讨论】:

【参考方案2】:

默认情况下,C# 不检查整数溢出,但 VB.NET 会。

如果你在 C# 中遇到相同的异常,例如将您的代码包装在 checked 块中:

checked

    uint value = 1161;
    byte data = (byte)value;


在您的 VB.NET 项目属性中,启用 配置属性 => 优化 => 删除整数溢出检查,然后您的 VB.NET代码将与您的 C# 代码完全一样。

然后对整个项目禁用整数溢出检查,但这通常不是问题。

【讨论】:

提议更改设置以禁用 all 溢出检查只是为了使一个语句有效。 禁用所有溢出检查根本不是问题(事实上,我从未遇到过这种情况)。如果你覆盖GetHashCode(),你可能还是想禁用它。 @BigYellowCactus 你不知道溢出检查是否依赖于项目的其他地方。在没有现有代码的项目开始时更改此设置会很好,但在大型开发项目中,如果您这样做,则需要重新测试所有内容。【参考方案3】:

尝试首先从数字中删除最重要的字节,然后将其转换为字节:

Dim value As UInteger = 1161 
Dim data1 As Byte = CType(value And 255, Byte)
Dim data2 As Byte = CByte(value And 255)

【讨论】:

以上是关于VB.Net和C#.Net有啥差异?优缺点是啥?的主要内容,如果未能解决你的问题,请参考以下文章

VB.net 和C#.net 各有啥优缺点

C# 和 VB.NET 之间最重要的功能差异是啥?

在 VB.NET 中调用过程的优缺点是啥?

在VB.NET中do while和while有啥区别?

部署 VB.NET 应用程序的最佳方式是啥?

C# 和 VB.NET 的优缺点?