【发布时间】:2019-09-04 09:46:53
【问题描述】:
我想在一个属性中返回多个变量
public class Cars
{
public object value { get; set; }
public bool worked { get; set; }
}
public Cars GetCar(object value, Cars c)
{
c.value = value;
return c;
}
public void Main(string[] args)
{
Cars c = new Cars();
string mycar = "ABC-12";
int mycar2 = 123;
if (GetCar(mycar, c).value == "ABC") // working
GetCar(mycar, c).worked = false;
if (GetCar(mycar, c).value == 1) // error
GetCar(mycar, c).worked = false;
}
所以如果对象是一个可以工作的字符串,但如果我使用那个 int 我会得到那个异常
== 运算符不能应用于“object”和“int”操作数
注意:我不想每次都使用 Convert.to
【问题讨论】:
-
您已将
value声明为object,而不是int。声明为int。 -
值可以是 int、string 或 ulong 如果我把它变成 int 我不能再使用 string
-
所以如果它是一个字符串,并且它的值是“Fred”,你希望如何将它与整数值
1进行比较? -
我想你不明白如果我使用示例
GetCar(string, c)那么值是一个字符串 -
这看起来像an X-Y problem。为什么将
value声明为对象,而不是使用强类型?