正如标题所示,out
关键字和ref
关键字似乎不适用于 VS2015 ,除System
类型以外的类型作为参数
e.g。
public MyType Get(string key)
{
return _list.TryGetValue(key, out MyType myVariable) ? myVariable : null;
}
这不会给我 VS2017 上的错误,但会在 VS2015 上发生错误。在 VS2015 上,由于它将类型MyType
视为变量,因此会出现语法错误。
有关如何解决此问题的任何想法?
更新
我将标题更改为“'out'或'ref'关键字不能用作VS2015上非系统类型的参数”至“'out'或'ref'关键字在VS2015上声明参数变量时不起作用“。
此外,我认为这适用于System
类型,例如int
,这是不正确的。它与使用的类型无关。
答案 0 :(得分:4)
您使用的是C# 7.0
在VS2015中,您最有可能是C# 6.0
在c# 7.0
之前,您必须先声明out
变量,然后才能将其用作out
参数
在任何给定的C#项目中,转到
属性 - >构建 - >高级... - >语言版本
答案 1 :(得分:1)
声明内联out
变量是C#7.0功能。
在C#6.0及以下版本中,你必须使用它:
public MyType Get(string key)
{
MyType myVariable;
return _list.TryGetValue(key, out myVariable) ? myVariable : null;
}
答案 2 :(得分:0)
这是一个C#7.0功能。如果要使用Visual Studio 2015进行编译,则必须采用传统方式进行编译。
public MyType Get(string key) {
MyType variable;
return _list.TryGetValue(key, out myVariable) ? myVariable : null;
}
答案 3 :(得分:0)