使用var-keyword自动交换显式类型

Chr*_*her 1 c# types .net-3.5

我想自动删除所有显式类型,并在一个大解决方案中与var关键字交换它们,例如代替

int a = 1;
Run Code Online (Sandbox Code Playgroud)

我希望有:

var a = 1;
Run Code Online (Sandbox Code Playgroud)

这只是化妆品,解决方案中的代码完美无缺,我只想让事情保持一致,因为我开始使用显式类型,但后来使用了var-keywords.

我猜我必须编写某种代码解析器 - 听起来有点麻烦.有人知道一个简单的解决方案吗?

干杯,克里斯

Ada*_*son 6

本身不是答案,但评论时间太长.

你应该强烈考虑这样做.混合显式和推理类型没有风格问题(您应该在需要时推断类型,无论是使用匿名类型还是使代码更易于阅读),并且您将遇到许多潜在问题:

  • 没有分配的声明是不合格的
  • 分配给的声明null不合格
  • 具有超类型但初始化为子类型(或兼容但不同类型)的声明将改变其含义.

IE

object foo = "test";

...

foo = 2;
Run Code Online (Sandbox Code Playgroud)

显然,这是一个简单的(并且不太可能)的例子,但是foo从更改objectvar将导致foo被输入string而不是object,并且会改变代码的语义(在这种情况下甚至不会编译,但是你可以轻松地运行更难以找到更改重载决策但不会产生编译时错误的场景.

换句话说,请不要这样做.