别名和点网类型和c#类型

时间:2013-01-07 06:28:04

标签: c# .net visual-studio-2010 .net-4.0 resharper

当我使用resharper工具时,它只是说“使用内置类型”字符串“而不是使用”String“。同样,它将UInt32转换为uint。

我用谷歌搜索了这一切,我发现它们都是别名。别名意为“重复”。好。 但是,它们究竟是什么意思呢?

  1. 当两者相同时,为什么工具建议使用“string”和“uint”作为“String”和“UInt32”?
  2. 此外,dot-net类型和C#类型之间有什么区别。
  3. 用谷歌搜索但无法找到任何令人满意的答案。 感谢。

2 个答案:

答案 0 :(得分:1)

  • Stringstring相同,UInt32uint也一样。

这只是因为符合CLS,所以你可以编写C#类库并在VB程序中使用,反之亦然。

MSDN的一些摘录:

  

要与其他对象完全交互而不管其实现的语言如何,对象必须仅向调用者公开那些必须与之互操作的所有语言共有的功能。出于这个原因,已经定义了公共语言规范(CLS),它是许多应用程序所需的一组基本语言特性。 CLS规则定义了Common Type System的子集;也就是说,适用于公共类型系统的所有规则都适用于CLS,除非在CLS中定义了更严格的规则。 CLS通过定义一组开发人员可以依赖的各种语言来增强和确保语言互操作性。

请参阅Common Language Specification

答案 1 :(得分:0)

Stringstring之间没有区别,因为你已经指出这些是别名 - 别名只是同一个东西的不同名称。

至于为什么Resharper做了什么,你应该在resharper专用网站上询问或寻求。在我看来,它只是传统的问题 - 你应该使用其中之一,为什么不使用大多数人使用的那个。