다음 문 작품 :? 운영자 VS ?? 연산자 사용법
Class.ID = odrDataReader["ID"] == null ? 0 : Convert.ToInt32(odrDataReader["ID"]);
그러나 다음과 같은하지 않습니다 :
Class.ID = odrDataReader["ID"] as int? ?? 0; //ID is always 0
어느 하나 이유를 설명 할 수 ?? ID 열이 null이 아니더라도 연산자가 항상 0을 반환합니까? (커크에 의해 제안)
솔루션 :
Class.ID = Convert.ToInt32(odrDataReader["ID"] ?? 0);
내가 odrDataReader는 [ "ID"]는 int 형으로 강제 할 수있는 무언가를 반환하는지 확인 낫겠 시도 할 수 있습니다. 그것이 어떤 객체 유형이라면 int로 AS'ed 될 수 없으며 what ?? 항상 null이므로 결과는 항상 0입니다. – Sean
실제로는''? :'(삼항 연산자)입니다 (http://msdn.microsoft.com/en-us/library/ty67wk28%28v=VS.100). % 29.aspx) 형식이 'cond? iftrue : 그렇지 않으면'. –
@pst : 사소한 nitpick, 그것은 _conditional_ 연산자라고합니다. 단지 언어에서 삼중 연산자 만 존재합니다. –