无法使用内联输出声明
Unable to use inline out declaration
我正在 VS2019 中创建新项目,目标为 .NET 4.7.1。
以下是我用于 out 参数内联声明的示例代码。
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
string a = "-1.5E5";
bool b = decimal.TryParse(a, out d number);
}
}
}
然而,编译器抱怨:
The type or namespace name 'd' could not be found (are you missing a using directive or an assembly reference?)
为了使用 C# 7 功能,除了指定目标 4.7 之外还有什么特别的吗?
您必须定义类型或使用 var
关键字
class Program
{
static void Main(string[] args)
{
string a = "-1.5E5";
bool b = decimal.TryParse(a, out var d );
}
}
ps。十进制解析-1.5E5
会得到0
,避免这种情况你可以使用double.Parse
你做错了。声明以这种方式工作:Type Name
,并且您使用了 Name Type
和无效类型。你应该使用的是:
bool b = decimal.TryParse(a, out var d);
也允许使用decimal
代替var
,当然:)
我相信你做错了。
当您使用 TryParse 时,您确实像临时变量一样使用来传递 TryParse 的结果(如果成功)。
我的建议是:
bool result = false;
bool question = decimal.TryParse(yourInputVar, out result);
我正在 VS2019 中创建新项目,目标为 .NET 4.7.1。 以下是我用于 out 参数内联声明的示例代码。
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
string a = "-1.5E5";
bool b = decimal.TryParse(a, out d number);
}
}
}
然而,编译器抱怨:
The type or namespace name 'd' could not be found (are you missing a using directive or an assembly reference?)
为了使用 C# 7 功能,除了指定目标 4.7 之外还有什么特别的吗?
您必须定义类型或使用 var
关键字
class Program
{
static void Main(string[] args)
{
string a = "-1.5E5";
bool b = decimal.TryParse(a, out var d );
}
}
ps。十进制解析-1.5E5
会得到0
,避免这种情况你可以使用double.Parse
你做错了。声明以这种方式工作:Type Name
,并且您使用了 Name Type
和无效类型。你应该使用的是:
bool b = decimal.TryParse(a, out var d);
也允许使用decimal
代替var
,当然:)
我相信你做错了。 当您使用 TryParse 时,您确实像临时变量一样使用来传递 TryParse 的结果(如果成功)。
我的建议是:
bool result = false;
bool question = decimal.TryParse(yourInputVar, out result);