[C#] DBNull.Value이 무엇인가요? null과 같은가요?

DBNull.Value이 무엇인가요? 

DBNull.Value이 무엇인가요 null과 같은가요

DBNull.Value 필드는 DBNull 클래스의 static readonly 인스턴스입니다. 그리고 이 값은 데이터테이블과 같은 객체 내에서 필드의 누락된 속성을 명시적으로 표시하거나 할당하기 위해서 사용합니다.

null과 같은가요?

DBNull.Value는 null과 같지 않습니다. DBNull.Value는 데이터베이스 필드에서 사용하고, null은 참조 형식 변수 전반에 대한 기본값이자 사용이 가능한 값입니다. 참조 형식뿐만 아니라 null을 허용하는 값 형식 또한 사용이 가능하지요.

DBNull.Value, null 비교

DBNull.Value와 null이 다르다는 것을 비교해 보는 예제자료입니다. 참고로 DBNull.Value를 ToString()으로 변환하면 빈 문자열이기는 합니다.

//DBNull.Value != null
if (DBNull.Value == null)
    Debug.WriteLine("DBNull.Value == null");
else
    Debug.WriteLine("DBNull.Value != null");

//DBNull.Value.ToString() == string.Empty
if (DBNull.Value.ToString() == string.Empty)
    Debug.WriteLine("DBNull.Value.ToString() == string.Empty");
else
    Debug.WriteLine("DBNull.Value.ToString() != string.Empty");

//DBNull.Value.ToString() == ""
if (DBNull.Value.ToString() == "")
    Debug.WriteLine("DBNull.Value.ToString() == \"\"");
else
    Debug.WriteLine("DBNull.Value.ToString() != \"\"");

//null != string.Empty
if (null == string.Empty)
    Debug.WriteLine("null == string.Empty");
else
    Debug.WriteLine("null != string.Empty");

댓글