【发布时间】:2016-07-19 16:30:54
【问题描述】:
我只是 C# 的初学者,但我正在努力学习一切。但是,我被重载的真假困住了;这是什么意思?请(尝试)给出尽可能基本的答复(这样即使是 13 岁的孩子也能理解逻辑)。 (请确保使其尽可能易于理解,谢谢)。 如果可以的话,请解释一下如果坐标换成别的东西会是什么结果(例如:(3,5))。
我在这里有预制代码: (你能解释一下改变坐标的不同输出吗) 信息: - 程序是一个控制台应用程序 - 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;
}
}
}
主类程序内部:
class Program
{
static void Main(string[] args)
{
Coord coord = new Coord(0, 0);
if (coord)
{
Console.WriteLine("True");
}
else
{
Console.WriteLine("False");
}
Console.ReadLine();
}
}
【问题讨论】:
-
您好,欢迎来到 StackOverflow!通过逐行调试您自己的代码将帮助您了解您的程序在做什么。
-
在您尝试调试代码后,如果您仍有疑问,请确保您已提供minimal reproducible example。另请参阅How to Ask。
-
这是一个 C# 版本 1 设计错误,受到启发是因为它还没有可为空的类型。已经完成的事情无法撤消,但您当然可以停止使用它。名称如 IsEmpty 的属性将是一个明智的选择。或者只是使用a .NET type 而不是自己编写。或者让它可以为空。
-
@HansPassant:很有趣。我从未审查过该文件。如果我这样做了,我会对提议的 DBNull 类型使用运算符 true 和 false 进行彻底的批评。