Null Checking Patterns
Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 33번째.
Null 확인은 강력한 C# 코드를 작성하는 데 필수적인 부분입니다. null 값을 안전하게 확인하는 데 사용할 수 있는 여러 패턴이 있습니다.
몇 가지 일반적인 null 확인 패턴을 살펴보겠습니다:
먼저, 기본적인 if-null 확인:
string name = null;
if (name == null)
{
Console.WriteLine("Name is null");
}
또 다른 일반적인 패턴은 null 조건부 연산자(?.)로, 잠재적으로 null인 객체의 멤버에 안전하게 액세스합니다:
string name = null;
int? length = name?.Length; // length will be null
null 병합 연산자(??)는 표현식이 null인 경우 기본값을 제공합니다:
string name = null;
string displayName = name ?? "Unknown"; // displayName will be "Unknown"
이 패턴들을 연결하여 더 복잡한 시나리오를 처리할 수도 있습니다:
string name = null;
int length = (name ?? "").Length; // length will be 0
string.IsNullOrWhiteSpace() 메서드는 문자열이 null이거나 비어 있거나 공백 문자만 포함하고 있는지 확인합니다. 문자열 입력을 한 번의 호출로 검증하는 편리한 방법입니다:
string name = null;
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("No name provided"); // this will print
}
string blank = " ";
if (string.IsNullOrWhiteSpace(blank))
{
Console.WriteLine("Blank name provided"); // this will also print
}
string.IsNullOrWhiteSpace()를 null, 빈 문자열 및 공백 문자만 포함된 문자열을 동등한 무효 입력으로 처리하고자 할 때 사용하세요.
챌린지
쉬움processUserName이라는 메서드를 생성하세요. 문자열 매개변수 userName을 받습니다. 이 메서드는 다음을 수행해야 합니다:
userName이 null인 경우 "No user provided"를 반환하세요userName이 비어 있거나 공백만 있는 경우 "Invalid username"를 반환하세요- 그렇지 않으면 "Welcome, [userName]!"를 반환하세요. 여기서 [userName]은 실제 사용자 이름입니다
적절한 null 체크 패턴을 사용하세요.
치트 시트
기본 null 확인을 위해 == null을 사용하세요:
if (name == null)
{
Console.WriteLine("Name is null");
}멤버에 안전하게 액세스하기 위해 null-조건부 연산자 ?.를 사용하세요:
int? length = name?.Length; // length will be null if name is null기본값을 제공하기 위해 null 병합 연산자 ??를 사용하세요:
string displayName = name ?? "Unknown";null, 빈 문자열 또는 공백만 있는 문자열을 확인하기 위해 string.IsNullOrWhiteSpace()를 사용하세요:
if (string.IsNullOrWhiteSpace(name))
{
Console.WriteLine("Name is null, empty, or whitespace");
}복잡한 시나리오를 위해 연산자를 체이닝하세요:
int length = (name ?? "").Length; // length will be 0 if name is 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