【问题标题】:How to automatically add variable type from method return type in Visual Studio如何在 Visual Studio 中从方法返回类型自动添加变量类型
【发布时间】:2018-02-21 10:47:20
【问题描述】:

假设你有一个类和方法:

public class MyLogicClass
{
    public static MyCustomComplexType GetResult() => new MyCustomComplexType ();
}

在编写代码时你会写:

MyLogicClass.GetResult();

是否有任何快捷方式或其他方法可以自动将方法的返回类型添加为变量,可能带有变量名,所以结果例如:

MyCustomComplexType myCustomComplexType1 = MyLogicClass.GetResult();

【问题讨论】:

  • 不,没有。但由于这是一种方法,理论上您甚至可以在不将返回值分配给变量的情况下调用它,因此您当前的代码绝对有效。如果您甚至不清楚您是否想要它,Visual Studio 应该如何决定在它前面加上一个变量声明?
  • var 还不够好?
  • 你可以使用 var 让编译器推断类型。
  • 如果您安装了 JetBrains ReSharper,它会为您完成。当然,这不是 Visual Studio 原生的,所以不一定是你要找的。​​span>
  • 您可以使用var x = MyLogicClass.GetResult();,然后使用重构快捷方式使var 显式化。这就是我在很多情况下所做的。

标签: c# .net visual-studio


【解决方案1】:

按照上面 JonSkeet 的建议,以及这个问题的“Visaul Studio 答案”:Tool to refactor C# var to explicit type,我设法让这个在 Visual Studio 中工作:

  • 查找工具 > 选项 > 文本编辑器 > C# > 代码样式 > 常规 > 'var' 偏好

    将所需选项的“严重性”设置为“警告”

  • 输入后

    var x = MyLogicClass.GetResult();
    

    只需按“CTRL + .”并选择“使用显式类型而不是 var”(或按 ENTER)

    这会将代码更改为:

    MyCustomComplexType x = MyLogicClass.GetResult();
    

【讨论】:

    【解决方案2】:

    首先你会以这种方式实现类中的方法,并使用对象返回类型

    public class MyLogicClass
    {
      public static object GetResult()
      {
        //Method code goes here
      }
    }
    

    并将其实现为:

    MyLogicClass mlc = new MyLogicClass();
    MyLogicClass.GetResult();
    

    编辑:我第一次尝试这个时没有正确理解你:Shortcut for extract local variable in Visual Studio or ReSharper (for C#)

    【讨论】:

    • 看来你还没有理解OP的要求。他想知道是否有办法(快捷方式)自动引入局部变量声明
    • 恐怕您提供的链接仅适用于 Resharper
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多