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

now*_*ed. 1 .net c# resharper .net-4.0 visual-studio-2010

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

我用google搜索了这一切,我发现它们都是别名.别名意为"重复".好.但是,它们究竟是什么意思呢?

  1. 当两者相同时,为什么该工具建议使用"string"和"uint"作为"String"和"UInt32"?
  2. 此外,dot-net类型和C#类型之间有什么区别.

谷歌搜索但无法找到任何令人满意的答案.谢谢.

Mir*_*Mir 6

拉法尔给出的答案总结了这一点,但我想做一些澄清:使用关键字而不是类型名称的唯一情况是定义枚举的基础类型 - 在这种情况下,使用后者是不允许的.

例:

enum Foo : Int32
{
}
Run Code Online (Sandbox Code Playgroud)

以上不会编译.

此外,虽然我通常更喜欢使用关键字,但必须说的是,虽然.NET Framework上运行的每种语言的类型都相同,但关键字却不同.例如,在C#中long是一个别名Int64,在C++/CLI中,long实际上是一个Int32.例如,在CLI语言之间移植代码时,这会产生一些混乱.