Null Checking Patterns
Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 33번째.
null 체크는 견고한 C# 코드를 작성하는 데 필수적인 부분입니다. null 값을 안전하게 확인하기 위해 사용할 수 있는 여러 가지 패턴이 있습니다.
몇 가지 일반적인 null 체크 패턴을 살펴봅시다:
먼저, 기본적인 null 확인(if-null check)입니다:
string name = null;
if (name == null)
{
Console.WriteLine("Name is null");
}
또 다른 일반적인 패턴은 null일 가능성이 있는 객체의 멤버에 안전하게 접근할 수 있게 해주는 null 조건 연산자(?.)입니다:
string name = null;
int? length = name?.Length; // length는 null이 됩니다
null 병합 연산자(??)는 표현식이 null일 때 기본값을 제공합니다:
string name = null;
string displayName = name ?? "Unknown"; // displayName은 "Unknown"이 됩니다
더 복잡한 시나리오를 위해 이러한 패턴들을 체이닝(chaining)할 수도 있습니다:
string name = null;
int length = (name ?? "").Length; // length는 0이 됩니다
string.IsNullOrWhiteSpace() 메서드는 문자열이 null이거나, 비어 있거나, 공백 문자만 포함되어 있는지 확인하는 편리한 방법입니다. 이 모든 것을 한 번의 호출로 처리할 수 있습니다:
string name = null;
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("Name is null, empty, or whitespace");
}
이것은 null, 빈 문자열, 공백만 있는 문자열을 동일하게 처리해야 할 때 특히 유용합니다. 예를 들어:
string name1 = null;
string name2 = "";
string name3 = " ";
// 세 가지 모두 메시지를 출력합니다
if (string.IsNullOrWhiteSpace(name1)) Console.WriteLine("name1 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name2)) Console.WriteLine("name2 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name3)) Console.WriteLine("name3 is null/empty/whitespace");
string.IsNullOrWhiteSpace()는 일반적인 null 체크와는 다르다는 점에 유의하세요. 이 메서드는 빈 문자열이나 공백, 탭 또는 기타 공백 문자만 포함된 문자열도 확인합니다.
챌린지
쉬움userName이라는 문자열 매개변수를 받는 processUserName이라는 메서드를 만드세요. 이 메서드는 다음을 수행해야 합니다:
userName이 null이면, "No user provided"를 반환합니다.userName이 비어 있거나 공백만 있는 경우, "Invalid username"을 반환합니다.- 그렇지 않으면, "Welcome, [userName]!"을 반환합니다. 여기서 [userName]은 실제 사용자 이름입니다.
적절한 null 체크 패턴을 사용하는 것을 잊지 마세요.
직접 해보기
using System;
class ProcessUserName
{
public static string processUserName(string userName)
{
// 여기에 코드를 작성하세요
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 및 흐름의 모든 레슨
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety