null은 유효한 값이므로 "각 값이 지정되어 있는지 여부가 지정되어 있지 않은지 여부와 함께 값을 메서드에 전달해야합니다. 따라서"지정되지 않은 것으로 해석 될 수 없습니다. "."specified"플래그가있는 값 개체
나는 일반적인 접근법을 취해 이러한 값을위한 간단한 컨테이너를 만들었지 만 (아래 참조), 이것이 올바른 방법일까요? 이 문제에 접근하는 더 좋은 방법이 있습니까? 이와 같은 클래스가 프레임 워크에 이미 존재합니까?
public struct Omissible<T>
{
public readonly T Value;
public readonly bool IsSpecified;
public static readonly Omissible<T> Unspecified;
public Omissible(T value)
{
this.Value = value;
this.IsSpecified = true;
}
}
방법 서명이 발신자가 특정 값 (지정) 업데이트되지 않도록 지정 할 수 있도록 다음과 같이 볼 수 있었다, 다른 사람이 널 (null)로 설정해야합니다/다른 값 (지정).
public void BulkUpdate(int[] itemIds,
Omissible<int?> value1, Omissible<string> value2) // etc.
두 번째 생성자가'T' 매개 변수를 사용하고 아무 것도하지 않는다는 것을 의미합니까? –
나에게 맞는 모양. 나는'class' 대신에'struct'를 사용할 것을 제안합니다. 또한 두 번째'생성자 '를 검사하면,'value' 매개 변수가 사용되지 않습니다. – devundef
와우, 수정되었습니다. 구조체도 좋은 생각입니다. – bernhof