Visual studio 如何让Visual Studio使用系统类型(Int32)而不是内置别名(int)生成代码

Visual studio 如何让Visual Studio使用系统类型(Int32)而不是内置别名(int)生成代码,visual-studio,coding-style,code-generation,Visual Studio,Coding Style,Code Generation,我可以让Visual Studio将转换为系统类型吗?例如,如果我定义以下接口 public interface IExample { Int32 DoWork(String input); } 使用VS自动生成接口,我得到内置类型 public class Demo : IExample { public int DoWork(string input) { } } 我希望这些自动更改为系统类型 public class Demo : IExample { publ

我可以让Visual Studio将转换为系统类型吗?例如,如果我定义以下接口

public interface IExample
{
    Int32 DoWork(String input);
}
使用VS自动生成接口,我得到内置类型

public class Demo : IExample
{
    public int DoWork(string input) { }
}
我希望这些自动更改为系统类型

public class Demo : IExample
{
    public Int32 DoWork(String input) { }
}
我不是在寻找一个完全可安装的解决方案,只是一个起点。我可以在VS中编写一个连接到文本完成或保存的脚本吗?我是否应该编写一个具有项目上下文菜单项的附加组件-“将别名转换为系统类型”


注意:我更喜欢系统类型,因为它们像其他类型一样由VS格式化。内置别名的格式类似于关键字。此外,这也是我目前工作中的编码风格指南


更新:从MS中可以清楚地看到,现有VS代码生成始终会生成内置别名。

这两种类型的含义完全相同,没有任何危险,即其中一种类型的含义不同


唯一的区别是它们的外观,如果这对您很重要,您可以编写一个宏,用系统类型替换任何内置别名。

内置别名的格式类似于关键字,因为是关键字。编译器将为您执行从语言数据类型关键字到基础CLR类型的转换

VisualStudio中没有自动为您执行此翻译的工具,因此您需要编写自己的实用程序来执行此操作。有几种不同的方法可以做到这一点-你可以写一个宏或VS插件-但是(IMHO)没有一种方法可以简单地编写并确保正确性


您声明这是个人偏好和编码风格要求。我认为格式问题似乎放错了地方。使用语言别名而不是CLR类型通常更容易/更干净/更可取。除了文本编辑器中的语法着色之外,两者之间绝对没有区别,也没有理由对类型使用CLR名称。在编码风格要求中给出了强制使用CLR类型而不是语言别名的原因(如果有的话)?

只是好奇,为什么?个人偏好?我也对这背后的“为什么”感兴趣,ajmastrean知道我不知道的事情吗?我会说看看他的标签。“编码风格”对我来说意味着这是一个风格问题。也许是官僚主义强加给他的……糟糕的是,我们三年后仍然没有解决这个“问题”…@jerone八年后……说它们是一样的并不完全准确。一个需要using语句(Int32要求您导入系统),而另一个是完整类型名称的别名(int=System.Int32)。True,但在封面下,CLR将它们视为完全相同的内容。这里唯一的区别是一个版本比另一个版本更漂亮,我们都知道,“情人眼里出西施”,所以。。它们是一样的,但它们不一样。为了理智起见,让我们假设它们是不同的。(1)类型的大小写是PascalCase。系统类型满足此要求。别名不是。(2) 自定义格式(更改配色方案)时,系统类型遵循应用于系统类型的规则。内置类型没有。@ajmastrean:我肯定认为,在编码标准中,尤其是#2中,这些是不合理的。配色方案绝对不属于编码标准。就大写规则而言,它们应该只应用于用户定义的类型(您自己的类)或由.NET Framework本身提供的没有相应或直接语言支持的类型。该语言为这些类型提供了直接支持,应该在BCL类型名称上使用这些支持。我不会被迫满足这些要求。但我很想知道它们是否可以实现。我对系统类型的负面反应感到惊讶!只要你不把C类别名看作是类型,是的,它们是可以实现的,尽管α2确实不适用于编码风格。我不会说对系统类型有负面的反应,而是说使用它们对别名没有好处。