我在很长一段时间内阅读了C#6.0中的异常过滤器
我试图在行动中使用它。但不确定为什么我会收到以下错误。
CS1003语法错误,'何时'预期C_6.0
这是我的代码段的样子
using System;
using static System.Console;
namespace C_6._0
{
public class Program
{
static void Main(string[] args)
{
int val = 1;
try
{
WriteLine("Enter value :");
val = int.Parse(ReadLine());
}
catch (Exception ex) if (val == 0)
{
WriteLine("Input Invalid");
}
catch (Exception ex)
{
WriteLine(ex.Message);
}
ReadLine();
}
}}
我通过
检查了C#的版本,它在我的visual studio中的6.0属性 - >构建 - >高级构建设置
感谢。
答案 0 :(得分:5)
许多在线链接确实显示if
应该是正确的但不再适用。过滤的异常的语法是when
而不是if
:
try
{
// Code here
}
catch (Exception ex) when (val == 0)
{
WriteLine("Input Invalid");
}
请参阅Official MSDN documentation
您评论的文章已过期。正如mjwills所提到的,原因是在以前版本的Visual Studio 2015 CTP中,使用了if关键字而不是when。
答案 1 :(得分:2)
异常过滤曾使用if
(在CTP中),但现在使用when
。
catch (Exception ex) when (val == 0)
注意:在以前版本的Visual Studio 2015 CTP中,if 使用关键字而不是何时。
答案 2 :(得分:0)
使用when
代替if
catch (Exception ex) when (val == 0)