True, false operators
Peponi │ 1/1/2025 │ 3m
C#
SyntaxOperatortruefalse
True, false operators
1/1/2025
3m
Peponi
C#
SyntaxOperatortruefalse
1. Introduction
true 및 false 연산자는 각각 피연산자의 상태를 boolean으로 나타낸다. true, false 연산자는 반드시 같이 오버로드 되어야 하며, 구현에 따라 모두 true, false를 반환할 수도 있다.
true 연산자는 주로 문 키워드, 논리 연산자의 조건 확인에 사용되며 false 연산자는 주로 논리 연산자의 조건 확인에 사용된다.
2. Example
아래의 예제는 true, false, & 연산자를 오버로드하여 정의하는 방법을 보여준다. 예제에서는 && 연산 수행 시 필드 Value가 null일 때만 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가 출력된다.
A의false여부를 확인한다Value가true임에 따라falseoperator에서false를 반환한다.
&operator로 진입하여,B의Value값이null임을 확인 후nullvalue를 가진 새 객체를 반환한다.C의true여부를 확인한다.Value가null임에 따라false를 반환한다.