Null Reference Basics
Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 31번째.
C#에서 null 참조는 객체의 부재를 나타냅니다. null 값과 작업하는 방법을 이해하는 것은 견고한 코드를 작성하는 데 필수적입니다.
값을 할당하지 않고 참조 형식 변수(예: string)를 선언:
string name = null;변수 'name'은 이제 null 참조를 가지고 있으며, 이는 메모리의 어떤 객체도 가리키지 않는다는 의미입니다.
확인하지 않고 null 참조를 사용하려고 하면 런타임 오류를 일으킬 수 있습니다:
string name = null;
// This will throw a NullReferenceException
int length = name.Length;참조를 사용하기 전에 null인지 확인할 수 있습니다:
string name = null;
if (name != null)
{
// Safe to use name here
int length = name.Length;
}변수에 null이 아닌 값을 할당할 수도 있습니다:
string name = null;
name = "John";
// Now it's safe to use name
int length = name.Length; // length will be 4챌린지
쉬움ProcessName이라는 메서드를 만들고 name이라는 문자열 매개변수를 받도록 하세요. 이 메서드는 다음을 수행해야 합니다:
- name이 null인지 확인하세요
- name이 null인 경우, "Name is null"을 출력하세요
- name이 null이 아닌 경우, "Name length is X"을 출력하세요 (여기서 X는 name의 길이입니다)
치트 시트
C#에서 null 참조는 객체의 부재를 나타냅니다.
null로 참조 타입 변수를 선언하세요:
string name = null;null 참조를 확인하지 않고 사용하면 런타임 오류가 발생합니다:
string name = null;
// NullReferenceException이 발생합니다
int length = name.Length;사용 전에 null을 확인하세요:
string name = null;
if (name != null)
{
// 여기서 name을 안전하게 사용할 수 있습니다
int length = name.Length;
}사용할 수 있도록 null이 아닌 값을 할당하세요:
string name = null;
name = "John";
int length = name.Length; // length는 4가 됩니다직접 해보기
using System;
class Program
{
public static void ProcessName(string name)
{
// 여기에 코드를 작성하세요
}
static void Main(string[] args)
{
string input = Console.ReadLine();
// "null" 문자열을 실제 null로 변환
string name = input.ToLower() == "null" ? null : input;
ProcessName(name);
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 및 흐름의 모든 레슨
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