2
사전 조건 코드 계약으로서 참조 유형이 null 인 것을 방지하기 위해 래퍼 클래스를 작성했습니다.C#의 래퍼 자동 변환
public sealed class NotNullable<T>
where T : class
{
private T t;
public static implicit operator NotNullable<T>(T otherT)
{
otherT.CheckNull("Non-Nullable type");
return new NotNullable<T> {t = otherT};
}
public static implicit operator T(NotNullable<T> other)
{
return other.t;
}
}
이 미세하게 작동하지만, 캐스트는 항상 Null 허용을 처리 할 때처럼 필요 :
public void Foo(NonNullable<Bar> bar)
{
Console.WriteLine((Bar)bar);
}
는 타입 T의 것처럼 유형 Null을 행동하라의 매개 변수를 가질 수 있을까, 그것을 캐스팅하지 않고도? 처럼 사양 #에 :
Console.WriteLine(bar.Value);
가도 있습니다
public string Foo(Bar! bar)
예 아니오 자신의 컴파일러/전처리기를 작성하십시오. C#을 AFAIK로 사용하면 ... 아니오 – Yahia
'null'래퍼는 어떻게됩니까? – SLaks