HaPpY hApPy

8. Value 타입을 사용할 때 0이라는 값이 의미를 가질수 있도록 본문

.NET/Effective C#

8. Value 타입을 사용할 때 0이라는 값이 의미를 가질수 있도록

juniguya 2014. 3. 16. 11:58

1. enum 을 사용할 때 명시적으로 값을 주지 않으면 0부터 시작하기 때문에 None 이라는 걸 0으로 명시적으로 주자. 또한 Flag Attribute를 사용할때도 0에 None을 명시적으로 주어, 처음 시작하는 값이 0이되지 않게 해야한다.

 

[Flags]

public enum Styles

{

None     = 0,

Flat       = 1,

Sunken = 2,

Raised  = 4

}

 

위에 만약 None이 존재하지 않아 Flat이 0이되면 아래코드는 제대로 작동하지 않는다.

 

if ((FlagsAttribute & Styles.Flat) != 0)

{

     DoFlatThings();
}

 

(FlagsAttribute & Styles.Flat) 의 결과가 모두 0이 되어버림

 

2. string은 최초 생성시 null이 들어가 있기 때문에 클래스의 멤버로 사용될때는

property를 적극 활용할 수 있다.

 

public struct LogMessage

{

private string _name;

public string Name

{

get

{

return (null != _name) ? _name : string.Empty; //이렇게

}

set

{

_name = value;

}

}

}

 

위와같이 초기값의로 0혹은 null로 초기화되는 변수들을 활용 가능