我可以让Visual Studio将built-in aliases转换为系统类型吗?例如,如果我定义以下接口
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代码生成将始终生成内置别名。
答案 0 :(得分:1)
这两种类型的意思完全相同,没有人会有不同的意思。
唯一的区别在于它们的外观,如果这对你很重要,你可以编写一个宏来替换任何带有系统类型的内置别名。
答案 1 :(得分:1)
内置别名的格式与关键字类似,因为是关键字。编译器为您执行从语言数据类型关键字到基础CLR类型的转换。
Visual Studio中没有任何内容可以自动为您执行此转换,因此您需要编写自己的实用程序来执行此操作。有几种不同的方法可以做到这一点 - 你可以写一个宏或一个VS插件 - 但是(恕我直言)它们中的任何一个都不会很容易写入并确保正确。
您声明这是个人偏好和编码风格要求。我认为格式问题似乎错了。使用语言别名而不是CLR类型通常更容易/更清洁/首选。除了文本编辑器中的语法着色之外,两者之间绝对没有区别,并且没有理由为您的类型使用CLR名称。在强制使用CLR类型而不是语言别名的编码样式要求中给出了什么原因(如果有的话)?