2013-02-18 2 views
2
public class TestClass 
{ 
    const MyType SOMECONSTANT = null; 

    protected string TestString { get; set; }  
} 

public class MyType 
{ 
    protected string FieldA { get; set; } 
} 

위의 코드는 유효하며 컴파일됩니다. 왜 C#은 constnull과 같은 참조 유형을 허용합니까? 이걸으로 어떻게 사용할 수 있습니까? 항상 null이 될 것입니까?null 값을 갖는 사용자 정의 유형 상수를 선언하는 용도는 무엇입니까?

+0

null은 참조 유형과 nullable 값 유형에 할당 할 수있는 유효한 값이기 때문에 생각합니다. –

답변

2

나중에 개발주기의 어느 시점에서 지정된 개체의 인스턴스를 보유 할 자리 표시 자로 사용할 수 있습니다. 일반적으로 상수는 비교 대상으로 사용됩니다. 그 생각을 복용하고 프로그래머 B 가정 구현 및 객체 PERFECT_TYPE 나중에 당신이 뭔가 같은

const MyType PERFECT_TYPE = null; 

말할 수 인스턴스화 것입니다 및이 상황에서 내가 지적 거라고하지만 나중에 내가

if (myInstance.Equals(TestClass.PERFECT_TYPE)) { /*do stuff*/ } 

가있을 수 있습니다 밖으로 당신은 MyType.Equals()의 구현이 필요 하겠지만 아이디어를 얻을. 이와 같은 일은 스터 빙에서, 특히 애자일 개발에서 드문 일이 아닙니다. 스텁은 상수보다 속성 일 가능성이 높지만 목적을위한 각 도구는 ...

관련 문제