HaPpY hApPy
8. Value 타입을 사용할 때 0이라는 값이 의미를 가질수 있도록 본문
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로 초기화되는 변수들을 활용 가능
'.NET > Effective C#' 카테고리의 다른 글
10 GetHashCode()의 함정 (0) | 2014.03.16 |
---|---|
9. ReferenceEquals(), static Equals(), instance Equals(), operator== 의상호연관성의 이해 (0) | 2014.03.16 |
7. immutable atomic value 타입이 더 좋다. (0) | 2013.08.17 |
6. value 타입과 reference 타입을 구분하라. (0) | 2013.08.17 |
5. 항상 ToString()을 작성하라. (0) | 2013.08.17 |