Laze 클래스 란?

.NET 개발/C# 2015. 7. 21. 16:58

Laze는 초기화를 나중에 미룰 때 한다 .


여러 곳에서 Laze 객체에 접근할 수 있기 때문에 


직접 안전한 Thread 접근을 위해 Lock 이나 volatile, boolean 을 같이 사용하여 안전한 접근을 만들어줘야한다.


예제를 보면 정확히 알 수 있는데 아래에 Lazy<Test> lazy = new Lazy<Test>(); 객체 생성 구문에서 Test는 생성되지 않는다. 


laze.Value를 호출함으로써 Test가 생성되고 추가적으로 객체 생성 구문에 클래스의 초기값을 설정할 수도있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Program
    {
        static void Main(string[] args)
        {
            // Create Lazy.
            Lazy<Test> lazy = new Lazy<Test>();
 
            // Show that IsValueCreated is false.
            Console.WriteLine("IsValueCreated = {0}", lazy.IsValueCreated);
 
            // Get the Value.
            // ... This executes Test().
            Test test = lazy.Value;
 
            // Show the IsValueCreated is true.
            Console.WriteLine("IsValueCreated = {0}", lazy.IsValueCreated);
 
            // The object can be used.
            Console.WriteLine("Length = {0}", test.Length);
        }
 
        class Test
        {
            int[] _array;
            public Test()
            {
                Console.WriteLine("Test()");
                _array = new int[10];
            }
            public int Length
            {
                get
                {
                    return _array.Length;
                }
            }
        }
    }
cs

LazySample.zip


'.NET 개발 > C#' 카테고리의 다른 글

Task<T> Class  (0) 2015.08.10
Task Class 비동기  (0) 2015.08.10
Thread Class  (0) 2015.07.31
.Net Remoting  (0) 2015.07.30
Inversion of Control(IOC), Dependency Injection(DI)  (0) 2015.07.13
Posted by Hoya0415
,

SQL JOINS 

INNER JOIN 

OUTER JOIN 등 매우 다양하네요.

'데이터베이스 > MSSQL' 카테고리의 다른 글

[MSSQL] Database diagram 소유자 설정  (0) 2015.11.20
[SQL] Client에서 Local Server로 접속 시 오류  (0) 2015.11.18
varchar()와 nvarchar()의 차이점  (0) 2015.11.17
테이블 변수  (0) 2015.07.21
SQL  (0) 2015.07.20
Posted by Hoya0415
,

 테이블 변수를 생성

Declare @reviewTemp Table(

 Id int,

 Sumint )


테이블 변수에 데이터 넣기.

Insert Into @reviewTemp
Select 필드1,sum(필드2)
FROM [gwatop].[dbo].[테이블]

테이블 변수는 쿼리 후 사라진다. 원래 임시 테이블을 쓰려다가 안좋다는 사람들도 많아서 테이블 변수로 사용했다.

사용한 이유는 3개의 테이블을 Inner Join 혹은 Full Join 했는데 3개 테이블을 제외한 다른 두개의 테이블의 정보 가지고 정렬을 해야하는 일이 있어서 많은 생각 끝에 테이블 변수를 만들었지만 Sub Query로 해결하였다.


'데이터베이스 > MSSQL' 카테고리의 다른 글

[MSSQL] Database diagram 소유자 설정  (0) 2015.11.20
[SQL] Client에서 Local Server로 접속 시 오류  (0) 2015.11.18
varchar()와 nvarchar()의 차이점  (0) 2015.11.17
SQL JOIN 종류  (0) 2015.07.21
SQL  (0) 2015.07.20
Posted by Hoya0415
,