2011-06-13 2 views
3

Enumerable.Sum()은 IEnumerable에 대해서만 정의됩니다. 여기서 T는byte, uint가없는 이유는 무엇입니까?

double, double입니까? int, int? 십진수 , 십진수? long, long? float, float?

byte, short 또는 uint를 정의하지 않는 이유가 있습니까?

  1. 오버플로 문제를 방지 하시겠습니까?
  2. 또는 컴파일러에서 형식 유추가 어렵습니까? (가장 가능성 있음)
+2

는'_not_ 준수 CLS uint'is, 너무 좋아 밖으로 LINQ에 지원. –

+0

[LINQ 집계 함수 (바이트, 단락 및 부호없는 값)] 가능한 중복 (http://stackoverflow.com/questions/6334839/linq-aggregate-functions-on-bytes-shorts-and-unsigned-values) –

답변

1

짧은 문자와 짧은 문자를 추가하면 int로 처리 할 수 ​​있습니다. 일부 CLS 호환 문제 일 수도 있습니다. 이것은 비슷한 질문으로 게시했습니다 :

Why is there no Sum() extension for IEnumerable<uint>

+0

하지만 uint는 어떨까요? –

+0

@akash kava - CLS 준수 문제 – JonH