푸터 콘텐츠로 바로가기
.NET 도움말

C# Null 병합 (개발자를 위한 작동 원리)

널 병합 연산자 ??는 왼쪽 피연산자가 null 참조일 경우 오른쪽 피연산자를 평가하고 그 결과를 반환합니다; 그렇지 않으면 왼쪽 피연산자의 값을 반환합니다. 왼쪽 피연산자가 널이 될 수 없는 값 형식으로 평가되는 경우 널 병합 연산자(??)는 오른쪽 피연산자를 평가하지 않습니다. 할당 연산자 ??=는 널 병합 할당으로, 왼쪽 피연산자가 nullable 유형 값으로 평가될 때만 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다. 왼쪽 피연산자가 널이 아닌 값으로 평가되는 경우 널 병합 할당 연산자(??=)는 오른쪽 피연산자를 평가하지 않습니다. 널 병합 연산자는 삼항 연산자와 유사합니다.

C#에서 널 병합 연산자(??)는 이항 연산자입니다. 두 개의 피연산자에 작용하는 연산자는 이항 연산자로 지칭됩니다. 널 병합 연산자를 사용할 때 두 피연산자가 필요하며, 연산자는 각 피연산자를 평가하여 결과를 결정합니다. 이제 아래에서 C#에서의 널 병합 및 널 조건부 연산자의 사용법을 살펴보겠습니다.

C# 널 병합 값 타입 사용법

  1. 새로운 C# 프로젝트를 만드세요.
  2. 적절한 버전이 설치되었는지 확인하십시오.
  3. 널 병합 연산자 ??를 사용하세요.
  4. 요구 사항에 따라 값 또는 개체 참조 유형을 확인하세요.
  5. 코드를 실행합니다.

Null Coalescing in C

C#에서 널 값은 널 가능 형식이나 널이 될 수 있는 표현식이 있을 때 해당 값 처리에 기본 제공되는 널 병합 연산자 (??)를 통해 처리됩니다.

구문

널 병합 연산자의 문법은 다음과 같습니다:

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
$vbLabelText   $csharpLabel
  • expression1: 이 표현식이 널 값을 생성할 수 있습니다.
  • expression2: expression1이 널일 때 사용할 기본 값이나 대체 표현식입니다.
  • result: 병합 연산의 결과를 보유하는 변수입니다.

널 병합 연산자는 널 가능 형식을 다룰 때 기본 값을 할당하는 축약된 방법을 제공하며, 코드 간소화 및 널 데이터 관리에 그 주 목적이 있습니다.

특징

  • 간결성: 복잡한 조건문이나 삼항 연산자 없이 널 체크를 처리합니다.
  • 코드 가독성: 널이 반환될 경우 기본 값이 제공될 것임을 명시적으로 나타냄으로써 개선됩니다.

널 병합 연산자를 사용하기 전에 비교하는 표현식 타입이 일치하거나 호환되는지 확인하는 것이 중요합니다.

유용하긴 하지만, 연산자를 남용하면 코드를 이해하기 어렵게 만들 수 있습니다. 코드의 명료성을 높일 때 절제하여 사용하세요.

널 가능 형식이나 기본 값이 필요한 시나리오를 다룰 때 C#의 널 병합 연산자(??)는 널 값을 관리할 효과적인 도구이며, 더 간결하고 이해하기 쉬운 코드를 작성하는 데 도움을 줄 수 있습니다.

널 병합 연산자 ?? 다음과 같은 타입 관련 속성을 가지고 있습니다:

결과 유형 추론

널 병합 연산자의 결과 유형은 다음 코드에서 보여지는 것처럼 표현식 1과 2가 동일한 유형을 가지면 이 피연산자의 유형과 동일합니다.

int? Value = null;
int result = Value ?? 10;
int? Value = null;
int result = Value ?? 10;
Dim Value? As Integer = Nothing
Dim result As Integer = If(Value, 10)
$vbLabelText   $csharpLabel

유형 호환성

결과 유형은 표현식 1과 2가 다른 유형을 가지고 있지만 하나가 다른 하나로 암시적으로 변환될 수 있는 경우 두 표현식을 암시적으로 변환할 수 있는 유형입니다.

double? value = null;
int result = (int)(value ?? 5.5);
double? value = null;
int result = (int)(value ?? 5.5);
Imports System

Dim value? As Double = Nothing
Dim result As Integer = CInt(Math.Truncate(If(value, 5.5)))
$vbLabelText   $csharpLabel

유형 승격

표현식 1과 2의 유형을 암시적으로 변환할 수 없는 경우, 결과 유형은 C#의 유형 승격 규칙에 따라 선택됩니다.

int? value = null;
long result = value ?? 100L;
int? value = null;
long result = value ?? 100L;
Dim value? As Integer = Nothing
Dim result As Long = If(value, 100L)
$vbLabelText   $csharpLabel

따라서 관련된 피연산자의 유형과 C# 유형 변환 규칙이 널 병합 연산자 (??)의 결과를 보유하는 변수나 표현식의 유형을 결정합니다. 널 병합 연산자를 사용하는 동안 유형 및 값을 올바르게 처리하기 위해 호환성 및 가능한 유형 변환을 고려하는 것이 중요합니다.

IronPDF의 병합

IronPDF를 설치하세요

IronPDF 라이브러리를 설치하려면 다음 코드를 패키지 관리자에 입력하십시오:

Install-Package IronPdf

C# 널 병합 (개발자를 위한 동작 방식): 그림 1 - IronPDF 설치

또는 NuGet 패키지 관리자를 사용하여 'IronPDF' 패키지를 검색할 수 있습니다. IronPDF와 연결된 모든 NuGet 패키지 목록에서 필요한 패키지를 선택하고 다운로드할 수 있습니다.

C# 널 병합 (개발자를 위한 동작 방식): 그림 2 - NuGet 패키지 관리자

널 병합으로 PDF 생성

IronPDF라는 C# 라이브러리가 PDF 문서를 생성하고 처리하는 데 사용됩니다. 이 라이브러리는 서식 지정, 텍스트 처리 및 이미지 관리를 포함한 PDF 작업을 위한 기능을 제공합니다. 'Null-coalescing'은 IronPDF에만 국한된 메소드 또는 기능이 아닙니다; 오히려, 이는 라이브러리 특정 작업이 아닌 언어 기능입니다.

그러나 C# 코드에서 IronPDF 또는 다른 라이브러리와 함께 작업할 때 C# 언어가 제공하는 null 병합 연산자 (??)를 사용할 수 있습니다.

IronPDF 객체, 널 값을 반환할 수 있는 nullable 값 유형 또는 속성을 이용하여 null 상황을 처리하거나 기본 값을 제공할 때 null 병합 연산자를 사용할 수 있습니다.

다음 예는 IronPDF와 함께 null 병합 연산자를 사용하는 방법을 보여줍니다:

using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
Imports IronPdf
Imports IronPdf.Pages

Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim x? As Integer = Nothing

			' Use the null-coalescing operator to provide a default value if x is null
			Dim outputstr = $"square of <b>{x}</b> is <b>{Math.Sqrt(If(x, 30))}</b>"

			' Render the HTML string as a PDF using IronPDF
			Dim pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr)

			' Save the generated PDF to the file system
			pdfcreate.SaveAs("demo.pdf")

			' Wait for a key press to prevent the console from closing immediately
			Console.ReadKey()
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

IronPDF(또는 다른 라이브러리)는 null 값을 조건부 운영자로 관리하기 위한 특별한 기능이나 메소드를 제공하지 않는다는 것을 기억하십시오; 오히려, null 병합 연산자의 사용은 일반적인 C# 언어 기능 및 null 조건부 운영자를 처리하기 위한 개념에 기반합니다. IronPDF의 기능 및 역량에 대해 더 알아보려면 IronPDF 데모를 방문하십시오.

출력:

C# 널 병합 (개발자를 위한 동작 방식): 그림 3 - 앞의 예제 출력

결론

요약하자면, C#의 null 병합 연산자 (??)는 표현식 및 할당에서 null 값을 더 쉽게 안전하게 처리할 수 있게 해주는 유용한 기능입니다. 이 연산자는 개발자에게 값이 null일 수 있는 시나리오를 처리하는 명확한 방법을 제공함으로써 코드를 간소화합니다. 이를 통해 개발자는 기본값을 지정하거나 대체 로직을 쉽게 수행할 수 있습니다. 그 유연성은 코드를 더 간결하고 효과적으로 만들어주어 null 테스트를 간소화하고 가독성을 향상시킵니다.

IronPDF는 영구 라이선스, 업그레이드 옵션, 1년간의 소프트웨어 유지보수, 30일 환불 보장 모두를 포함하는 $799 Lite 패키지를 제공합니다. 사용자는 워터마크가 있는 체험 기간 동안 실제 애플리케이션 설정에서 제품을 평가할 수 있는 30일을 얻습니다. IronPDF의 가격, 라이선싱 및 체험판에 대해 더 알아보려면 제공된 IronPDF 라이선싱를 클릭하십시오. Iron Software 제품에 대해 더 알아보려면 Iron Software 웹사이트를 확인하십시오.

자주 묻는 질문

C#에서 null 병합 연산자는 코드 가독성을 어떻게 향상시키나요?

C#의 null 병합 연산자 `??`는 null 확인을 간소화하고 nullable 타입을 만났을 때 기본 값을 할당하는 간결한 방법을 제공하여 코드 가독성을 향상시킵니다.

C#에서 null 병합 할당 연산자의 목적은 무엇입니까?

null 병합 할당 연산자 `??=`는 왼쪽 피연산자가 null일 경우에만 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당하여 nullable 타입을 다룰 때 코드를 간소화합니다.

C# PDF 애플리케이션에서 null 병합 연산자를 사용하는 예를 제공할 수 있나요?

IronPDF를 사용하는 C# PDF 애플리케이션에서 사용자가 파일 이름을 지정하지 않을 때 기본 파일 이름을 할당하기 위해 null 병합 연산자를 사용할 수 있습니다: string pdfName = userInputFileName ?? "default.pdf";

null 병합 연산자를 사용할 때 일반적인 함정은 무엇입니까?

일반적인 함정은 피연산자 간의 타입 호환성을 확인하지 않아 타입 변환 오류로 이어질 수 있는 것입니다. null 병합 연산자를 사용할 때, 두 피연산자가 호환되는 타입인지 확인하는 것이 중요합니다.

C#에서 타입 호환성과 null 병합 연산자는 어떻게 관련이 있습니까?

null 병합 연산자는 두 피연산자가 호환되는 타입이어야 합니다. 그렇지 않으면, C#은 타입 승격 규칙을 적용하여 결과 타입을 결정하고, 이를 신중하게 관리하지 않으면 예상치 못한 동작이 발생할 수 있습니다.

null 병합 연산자는 nullable 타입을 다루는 개발자에게 왜 유용합니까?

null 병합 연산자는 기본 값을 제공함으로써 nullable 타입을 효율적으로 처리하게 해주어, 상세한 조건부 논리의 필요성을 줄여주기 때문에 유용합니다.

개발자가 C# 코드 라이브러리에서 null 병합 연산자를 사용하여 null 값을 어떻게 관리할 수 있습니까?

개발자는 C# 코드 라이브러리에서 null 병합 연산자를 사용하여 null일 수 있는 값에 기본 값을 할당하여, null 참조 예외 없이 애플리케이션이 원활하게 실행되도록 할 수 있습니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

제이콥은 맨체스터 대학교에서 토목공학 학사 학위(BEng)를 최우등으로 취득했습니다(1998~2001). 1999년 런던에서 첫 소프트웨어 회사를 설립하고 2005년 첫 .NET 컴포넌트를 개발한 후, 마이크로소프트 생태계 전반에 걸쳐 복잡한 문제를 해결하는 데 전문성을 발휘해 왔습니다.

그의 대표 제품인 IronPDF 및 Iron Suite .NET 라이브러리는 전 세계적으로 3천만 건 이상의 NuGet 설치 수를 기록했으며, 그의 핵심 코드는 전 세계 개발자들이 사용하는 다양한 도구에 지속적으로 활용되고 있습니다. 25년의 실무 경험과 41년의 코딩 전문성을 바탕으로, 제이콥은 차세대 기술 리더들을 양성하는 동시에 기업 수준의 C#, Java, Python PDF 기술 혁신을 주도하는 데 주력하고 있습니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해