Software Develop/C# , .NET , WPF

Lazy<T>

jaywapp 2023. 1. 16. 22:13

Lazy<T>란?

.NET은 4.0 이후 버전에서 Lazy<T> 형식을 제공한다. Lazy<T>을 사용하면 객체 생성에 있어서 초기화 지연이 가능하다.

이게 무슨 말이냐면, T 형식의 객체가 Lazy<T>를 사용하면 최초로 호출되는 시점에 생성된다는 것이다.

 

예시

아래 Lazy<T>의 사용 예시를 보자.

public class LazyCallClass
{
    private Lazy<LazyTest> _test;

    public LazyTest Test => _test.Value;


    public LazyCallClass()
    {
        _test = new Lazy<LazyTest>(() =>  new LazyTest());
        Console.WriteLine($"{nameof(LazyCallClass)} is created.");
    }
}

public class LazyTest { }

static void Main(string[] args)
{
    Console.WriteLine("Step 1");
    var lazyCallClass = new LazyCallClass();

    Console.WriteLine("Step 2");
    var test = lazyCallClass.Test;

    Console.WriteLine("Step 3");
    Console.ReadLine();
}

Lazy 예시 결과

 

위 결과를 보면 LazyCallClass가 생성될 때 Lazy<LazyTest> 를 생성하지만 실질적으로 LazyTest 객체는 Test 프로퍼티가 호출되는 시점에 생성되는 것을 확인할 수 있다.

'Software Develop > C# , .NET , WPF' 카테고리의 다른 글

private, protected method 단위 테스트 코드 작성하기  (0) 2023.02.07
ListBox 사용하기  (0) 2023.02.07
Adonis UI 사용기  (0) 2023.02.07
ReactiveUI  (0) 2022.02.28
Crawling (Selenium)  (0) 2022.02.16