C#和VB.NET之间默认的ExactSpelling不同,为什么?

4
C# 和 VB.NET 之间微妙的语言差异之一是是否需要将 DllImportAttribute 应用于标识符中带有结尾字符 'A' 或 'W' 的方法(该字符代表 ANSI 字符集或 Unicode 字符集),以调用 Win32 API。更准确地说,两种语言都允许这两种做法,但 DllImportAttribute.ExactSpelling 参数的默认值 因语言而异

我对此感到惊讶,因为我将 C# 与更多的机器导向、大小写敏感的标识符匹配联系在一起,而将 VB.NET 与更多的人类导向、不区分大小写的标识符匹配联系在一起,现在这是一个案例,在这个案例中,C# 允许我比 VB.NET 更松散的匹配方式。

这种语言差异背后的逻辑是什么?


3
在C#出现之前,VB版本就已经存在了,这只是历史事实。它使用“Declare”关键字进行P/Invoke操作。它没有ExactSpelling的等效项,因此VB程序员需要显式声明A或W版本,所以“true”是一个合理的默认值。 - Hans Passant
我猜这是为了与VB的Declare语句兼容。 - David Heffernan
1个回答

0
在我看来,如果回顾一下: C++是区分大小写的,而C#从这门语言中获得了很多东西,我认为这样可以让C++开发人员更容易地转向C# ;) VB.NET从Visual Basic和Basic语言中获得了更多的东西。

这并没有回答问题。一旦您拥有足够的声望,您将能够在任何帖子上评论。还要检查这个我可以做什么代替 - thewaywewere

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接