CS1003语法错误,'何时'预期

时间:2017-09-22 12:31:13

标签: c# c#-6.0

我在很长一段时间内阅读了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

属性 - >构建 - >高级构建设置

感谢。

3 个答案:

答案 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)

This blog entry州:

  

注意:在以前版本的Visual Studio 2015 CTP中,if   使用关键字而不是何时。

答案 2 :(得分:0)

使用when代替if

catch (Exception ex) when (val == 0)