变量未在范围内声明,但有效(“推断”??)

时间:2018-01-11 19:39:53

标签: c# c#-7.0

以下语法适用于Visual Studio 2017,.NET 4.5中的项目。 使用Visual Studio 2015,.NET 4.5,这种语法在另一台机器上不起作用。 我不知道这种语法(对我来说'eventargs'在该范围内不存在)。 C#中是否有任何更新可能会推断'eventargs'? 我没有发现任何关于它的事情......

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (!(value is Telerik.XamarinForms.Input.AutoComplete.SuggestionItemSelectedEventArgs eventArgs))
            throw new ArgumentException("Expected SuggestionItemSelectedEventArgs as value", nameof(value));

        return eventArgs;
    }

1 个答案:

答案 0 :(得分:3)

这是一个名为pattern matching的C#7功能,在Visual Studio 2017中随编译器一起引入。

基本上eventArgs使用is表达式声明。