我只是一个C#初学者,但我正在努力学习所有知识。然而,我卡在了重载 true 和 false 上;这是什么意思?请尽量用最基本的语言回答(以便13岁的孩子也能理解逻辑)。
如果可能的话,请解释一下如果坐标变成其他内容(例如:(3,5)),会有什么结果。
这里有预先编写好的代码: (请解释更改坐标后不同的输出) 信息: - 程序是控制台应用程序 - C# 我创建了一个名为Coord(代表坐标)的类。 类内部:
在主类Program内部:
这里有预先编写好的代码: (请解释更改坐标后不同的输出) 信息: - 程序是控制台应用程序 - C# 我创建了一个名为Coord(代表坐标)的类。 类内部:
class Coord
{
private int _x, _y;
public Coord(int x, int y)
{
_x = x;
_y = y;
}
public int x
{
get
{
return _x;
}
set
{
_x = value;
}
}
public int y
{
get
{
return _y;
}
set
{
_y = value;
}
}
public static bool operator true(Coord coord1)
{
if (coord1.x != 0 || coord1.y != 0)
{
return true;
}
else
{
return false;
}
}
public static bool operator false(Coord coord1)
{
if (coord1.x == 0 && coord1.y == 0)
{
return true;
}
else
{
return false;
}
}
}
在主类Program内部:
class Program
{
static void Main(string[] args)
{
Coord coord = new Coord(0, 0);
if (coord)
{
Console.WriteLine("True");
}
else
{
Console.WriteLine("False");
}
Console.ReadLine();
}
}
if(X() && Y()) Z();
和if(X()) if (Y()) Z();
具有相同的语义,但对于给定的类型,它们并不相同!前者在X()
为“null”时评估Y()
,但后者不会。 (幸运的是,两者都不执行Z()
,这至少是一件好事。) - Eric Lippert