C# 重载true和false运算符的作用是什么?

C# 重载true和false运算符的作用是什么?,c#,operator-overloading,C#,Operator Overloading,我只是C#的初学者,但我正在努力学习一切。然而,我被困在超载的真假上;这是什么意思?请尽可能地给出基本的回答(这样即使是一个13岁的孩子也能理解其中的逻辑)。 (请确保尽可能理解,谢谢)。 如果可以的话,请解释一下如果合作关系发生了变化(例如:(3,5)),结果会是什么 我在这里预先编写了代码: (你能解释一下改变坐标时的不同输出吗) 信息: -该程序是一个控制台应用程序 -C# 我做了一个叫做“坐标”的课程。 课堂内: class Coord { private int _x, _y;

我只是C#的初学者,但我正在努力学习一切。然而,我被困在超载的真假上;这是什么意思?请尽可能地给出基本的回答(这样即使是一个13岁的孩子也能理解其中的逻辑)。 (请确保尽可能理解,谢谢)。 如果可以的话,请解释一下如果合作关系发生了变化(例如:(3,5)),结果会是什么

我在这里预先编写了代码: (你能解释一下改变坐标时的不同输出吗) 信息: -该程序是一个控制台应用程序 -C# 我做了一个叫做“坐标”的课程。 课堂内:

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();
    }
}
我只是C#的初学者,但我正在努力学习一切

确保至少分配几十年。我经常学习这门语言的新知识

我被困在超载的真假上;这是什么意思

它们很少被使用;它们主要用于使用户定义的
&&
|
操作员短路

阅读我关于这个主题的系列文章;你会对第三部分特别感兴趣,但你应该通读全文

如果可以的话,请解释一下如果合作关系发生了变化(例如:(3,5)),结果会是什么


如果你想知道当你改变某个东西时程序会做什么,改变它并运行它,很快你就会知道

您好,欢迎来到StackOverflow!通过逐行调试您自己的代码将有助于您了解程序正在执行的操作。在您尝试调试代码之后,如果您仍然有问题,请确保您提供了一个解决方案。另请参见。这是一个C#version 1设计错误,因为它还没有可空类型。所做的事情无法撤消,但您肯定可以停止使用它。一个名为IsEmpty的属性将是一个明智的选择。或者只是使用,而不是自己写。或者使它可以为空。@HansPassant:有趣。我从未看过那些文件。如果我这样做的话,我会对提议的DBNull类型使用运算符true和false进行彻底的批评。。。。嗯,你“非常”乐于助人