如何定义不像类型那样使用的变量?

How can I define variables that are not used like types?

我有一个代码是在 Visual Studio 2017 年写的。
现在我正在尝试使用 Visual Studio 2015,但 Tuple 安装失败。
所以我在不使用 Tuple 的情况下进行编码。

这个代码

namespace TEST00
{
    public class Class1<T> : IValueConverter
    {
        public T ValueForTrue { get; set; }

        public T ValueForFalse { get; set; }

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            bool v = new bool();
            bool v1 = (value is v) && v;
            return v1 ? ValueForTrue : ValueForFalse;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}

原因

CS0118 : 'v' is a variable but is used like a type

Visual Studio 2017 年的原始代码是

namespace TEST00
{
    public class Class1<T> : IValueConverter
    {
        public T ValueForTrue { get; set; }

        public T ValueForFalse { get; set; }

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return ((value is bool v) && v) ? ValueForTrue : ValueForFalse;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}

而且有效。

我不知道如何定义'v'。
如何定义不像类型那样使用的变量?

您正在寻找这个:

    bool v1 = (value is bool) && (bool)value;