Visual studio 快捷方式自动将表达式的结果指定给显式类型化命名变量[Visual Studio]

Visual studio 快捷方式自动将表达式的结果指定给显式类型化命名变量[Visual Studio],visual-studio,visual-studio-2015,intellisense,Visual Studio,Visual Studio 2015,Intellisense,是否有快捷方式将表达式的结果指定给命名变量 我通常先编写表达式,因为我不确定返回的数据类型 比如说: Add(0.5, 1.5); // Luckily Intellisense tooltips tell me it returns double of 2.0 因此,必须手动将其写入:double result=: double variable1 = Add(0.5, 1.5); 因为这种情况几乎总是发生。是否有快捷方式/帮助程序将结果指定为变量 (代码是用C#编写的)我已经为visua

是否有快捷方式将表达式的结果指定给命名变量

我通常先编写表达式,因为我不确定返回的数据类型

比如说:

Add(0.5, 1.5); // Luckily Intellisense tooltips tell me it returns double of 2.0
因此,必须手动将其写入:
double result=

double variable1 = Add(0.5, 1.5);
因为这种情况几乎总是发生。是否有快捷方式/帮助程序将结果指定为变量

(代码是用C#编写的)

我已经为visualcommander创建了命令。它使用Roslyn,主要代码是:

Microsoft.VisualStudio.Text.SnapshotPoint caretPosition = textView.Caret.Position.BufferPosition;
Microsoft.CodeAnalysis.Document document = caretPosition.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax invocationExpressionNode = 
    document.GetSyntaxRootAsync().Result.FindToken(caretPosition).Parent.AncestorsAndSelf().
        OfType<Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax>().FirstOrDefault();
if (invocationExpressionNode != null)
{
    Microsoft.CodeAnalysis.SemanticModel semanticModel = document.GetSemanticModelAsync().Result;
    Microsoft.CodeAnalysis.IMethodSymbol methodSymbol = semanticModel.GetSymbolInfo(invocationExpressionNode).Symbol as 
        Microsoft.CodeAnalysis.IMethodSymbol;
    textView.TextBuffer.Insert(invocationExpressionNode.SpanStart, methodSymbol.ReturnType.ToString() + " v = ");
}
Microsoft.VisualStudio.Text.SnapshotPoint caretPosition=textView.Caret.Position.BufferPosition;
Microsoft.CodeAnalysis.Document Document=caretPosition.Snapshot.GetOpenDocumentInCurrentContextWithChanges();
Microsoft.CodeAnalysis.CSharp.Syntax.InvocationExpressionSyntax invocationExpressionNode=
document.GetSyntaxRootAsync().Result.FindToken(caretPosition).Parent.AncestorsAndSelf()。
OfType().FirstOrDefault();
if(invocationExpressionNode!=null)
{
Microsoft.CodeAnalysis.SemanticModel SemanticModel=document.GetSemanticModelAsync().Result;
Microsoft.CodeAnalysis.IMethodSymbol methodSymbol=semanticModel.GetSymbolInfo(invocationExpressionNode)。符号为
Microsoft.CodeAnalysis.IMethodSymbol;
textView.TextBuffer.Insert(invocationExpressionNode.SpanStart,methodSymbol.ReturnType.ToString()+“v=”);
}

您可以编写
var a=Add(0.5,1.5)
并让VS确定数据类型。请参阅此处的参考:我更喜欢显式类型,除非它是匿名类型或太长太写。更重要的是它的可读性。因此,对于这种情况,我避免使用
var