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();
}
위 결과를 보면 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 |