如何定义不像类型那样使用的变量?
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;
我有一个代码是在 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;