■ Lazy<T> 클래스 : 지연 초기화(lazy initialization) 사용하기
------------------------------------------------------------------------------------------------------------------------
▶ Program.cs
using System;
namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Public
#region 프로그램 시작하기 - Main()
/// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { Lazy<Person> personNameLazy = new Lazy<Person>(() => new Person("홍길동"));
Console.WriteLine("personNameLazy 객체가 정의되었습니다.");
if(personNameLazy.IsValueCreated) { Console.WriteLine("personNameLazy 값이 생성되었습니다."); } else { Console.WriteLine("personNameLazy 값이 생성되지 않았습니다."); }
Console.WriteLine($"personNameLazy.Name = {(personNameLazy.Value as Person).Name}");
if(personNameLazy.IsValueCreated) { Console.WriteLine("personNameLazy 값이 생성되었습니다."); } else { Console.WriteLine("personNameLazy 값이 생성되지 않았습니다."); } }
#endregion } }
|
▶ Person.cs
using System;
namespace TestProject { /// <summary> /// 사람 /// </summary> public class Person { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public
#region 성명 - Name
/// <summary> /// 성명 /// </summary> public string Name { get; set; }
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - Person(name)
/// <summary> /// 생성자 /// </summary> /// <param name="name">성명</param> public Person(string name) { Name = name;
Console.WriteLine("Person 생성자가 호출되었습니다."); }
#endregion } }
|
------------------------------------------------------------------------------------------------------------------------
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 변환 함수를 사용해 NULL 가능형 구조체 값 변환하기 (0) | 2019.11.24 |
---|---|
[C#/COMMON] 변환 함수를 사용해 NULL 가능형 구조체 값 변환하기 (0) | 2019.11.24 |
[C#/COMMON] yield return 키워드를 사용해 열거 가능형 구하기 (0) | 2019.11.24 |
[C#/COMMON] switch ... case ... 구문에 대응하는 함수형 사용하기 (0) | 2019.11.24 |
[C#/COMMON] 16진수 문자열에서 정수 값 구하기 (0) | 2019.11.24 |
[C#/COMMON] Lazy<T> 클래스 : 지연 초기화(lazy initialization) 사용하기 (0) | 2019.11.23 |
[C#/COMMON] 지연 열거를 사용해 피보나치 수열 구하기 (0) | 2019.11.23 |
[C#/COMMON] 간접 재귀를 사용해 홀짝 여부 구하기 (0) | 2019.11.23 |
[C#/COMMON] 연속 전달형의 꼬리 재귀를 사용해 팩토리얼 구하기 (0) | 2019.11.23 |
[C#/COMMON] 누적기 전달형의 꼬리 재귀를 사용해 팩토리얼 구하기 (0) | 2019.11.23 |
[C#/COMMON] 비동기 프로그래밍 모델(Asynchronous Programming Model, APM) 사용하기 (0) | 2019.11.23 |
댓글을 달아 주세요