Favicon

True, false operators

Peponi1/1/20253m

C#
SyntaxOperatortruefalse

1. Introduction

truefalse 연산자는 각각 피연산자의 상태를 boolean으로 나타낸다. true, false 연산자는 반드시 같이 오버로드 되어야 하며, 구현에 따라 모두 true, false를 반환할 수도 있다.

true 연산자는 주로 문 키워드, 논리 연산자의 조건 확인에 사용되며 false 연산자는 주로 논리 연산자의 조건 확인에 사용된다.

2. Example

아래의 예제는 true, false, & 연산자를 오버로드하여 정의하는 방법을 보여준다. 예제에서는 && 연산 수행 시 필드 Valuenull일 때만 false를 반환하도록 한다.

public class NullToFalse
{
    public bool? Value;
 
    public static bool operator true(NullToFalse a) => a.Value != null ? true : false;
 
    public static bool operator false(NullToFalse a) => a.Value == null;
 
    public static NullToFalse operator &(NullToFalse a, NullToFalse b)
    {
        if (a.Value == null || b.Value == null) return new() { Value = null };
        else return new() { Value = true };
    }
}
 
internal class Program
{
    static void Main(string[] args)
    {
        NullToFalse A = new() { Value = true };
        NullToFalse B = new() { Value = null };
 
        var C = A && B;
 
        Console.WriteLine(C ? "True" : "False");
    }
}
 
/* output:
False
*/

위 에제에서는 다음과 같은 과정을 거쳐 False가 출력된다.

  1. Afalse 여부를 확인한다
    • Valuetrue임에 따라 false operator에서 false를 반환한다.
  2. & operator로 진입하여, BValue 값이 null임을 확인 후 null value를 가진 새 객체를 반환한다.
  3. Ctrue 여부를 확인한다.
    • Valuenull임에 따라 false를 반환한다.

3. 참조 자료