절대적으로 데이터 유형을 하드 코딩 할 수 없습니다. 엄격한 데이터 입력이 필요합니다. TValue a < = TValue를 사용해야합니다. b. 다시 말하지만, (이중) a와 같은 것을 할 수있는 방법은 절대적으로 없습니다. 이것은 필수적인 라이브러리 구현의 일부입니다. 일반 값과 관련하여 유일한 것은 정적 유형이라는 것입니다. IComparable 및 다른 인터페이스가 작동하지 않는 것 같습니다.덜 작거나 큰 조작을 구현해야합니다.
답변
IComparable이 왜 효과가 없습니까?
"<"및 ">"기호를 사용하는 구문 설탕을 얻을 수 없지만 CompareTo의 결과가 0보다 작거나 같은지 확인하여 동일한 정보를 제공하는지 확인할 수 있습니다.
함께 작업하기에 좋은 확장 메서드를 작성할 수도 있습니다.
static void Main(string[] args)
{
Console.WriteLine(1.IsGreaterThan(2));
Console.WriteLine(1.IsLessThan(2));
}
public static bool IsGreaterThan<T>(this T value, T other) where T : IComparable
{
return value.CompareTo(other) > 0;
}
public static bool IsLessThan<T>(this T value, T other) where T : IComparable
{
return value.CompareTo(other) < 0;
}
또는 'IComparable
데이터 유형 및 유스 케이스를 좀더 정확하게 사용할 수 있습니까?
결국 비교 작업을 구현하려면 클래스에 대한 정보가 필요합니다. 완전한 제네릭 구현은 일반적으로 GetHashCode() 또는 ToString()에서 정렬하지 않는 한 일반적으로 두 객체를 비교하는 데 필요한 정보를 얻지 못했습니다. 이는 매우 이상한 일입니다. 외부 비교 구현 등의 객체에
IComparable<T>
자신IComparer<T>
:다양한 제네릭 형식 안전 비교를위한 인터페이스가 있습니다.
당신이 당신의 유형에 IComparable
또는 IComparable<T>
을 구현 한 경우에, 당신은 자동으로 후자의 변형을 얻을 수 Comparer<T>.Default
을 사용할 수 있습니다 - 짧은 조금 쓰기 비교 소비자를 만드는하고을 필요로하는 일반적인 제약 조건에 대한 대안 IComparable<T>
으로 입력하십시오.
+1'Comparer
그냥 System.Collections.Generic.Comparer<T>.Default.Compare(x,y)
을 사용하고 음수, 양수 및 0 개의 반환 값을 찾으십시오.
이 코드는 IComparable<T>
및 IComparable
을 모두 지원하며 클래스, 구조체 및 Nullable<T>
-of-structs에 사용할 수 있습니다.
-ve 및 + ve는 무엇입니까? – Gabe
그 트릭을 할 것으로 보인다. Visual Studio Express 2010 Beta를 사용하고 있으며 Intellisense는이 상황을 인식하지 못했습니다. 매우 이상한 행동. –
@ gabe : "긍정"과 "부정"을 작성하는 속기 방법입니다. –
- 1. javascript보다 덜/큰 탈출
- 2. 매우 작거나 매우 큰 숫자를 곱하는 함수
- 3. CSS : 큰 (덜 제한) 값
- 4. 같은 큰 쿼리를 작성하지 않아도되는 방식으로 다음 쿼리를 구현해야합니다.
- 5. 맞춤형 Fitnesse 응답자를 구현해야합니다.
- 6. 은 C# 카운터를 구현해야합니다.
- 7. 매우 큰 BMP에서 어떻게 이미지 조작을 할 수 있습니까?
- 8. 적어도 하나의 개체가 Icomparable을 구현해야합니다.
- 9. 파이썬이 문자열 조작을
- 10. CCK 필드 값의 수는 1보다 작거나 NULL
- 11. 2-3 비트 트리를 주어진 값보다 작거나 큰 값으로 나누기 X
- 12. LINQ는 포함 덜
- 13. 스핑크스 연산자 "덜"
- 14. 비트 조작을 사용하여 비트 추출
- 15. 리스트 조작을 포함하는 Lisp 연습
- 16. jQuery 날짜 조작을 수행하는 플러그인
- 17. 내 안드로이드 앱에 공유 기능을 구현해야합니다.
- 18. 은 온라인 백업 도구에서 버전 관리를 구현해야합니다.
- 19. toList() 변환 예외 Object가 IConvertible을 구현해야합니다.
- 20. WCF per Call Service는 캐싱을 구현해야합니다.
- 21. DayOfWeek의 현지화가 덜 못보기 싫은가요?
- 22. 어떤 SQL이 메모리를 덜 사용합니까?
- 23. 덜 응답 시간 웹 서버
- 24. phpDocumentor 또는 메모리를 덜 소모하는 대체 코드
- 25. Javascript 코드 해킹/삽입/조작을 어렵게 만드는 방법은 무엇입니까?
- 26. Infragistics Winforms UltraMaskedEditor 동작을 덜 이상하게
- 27. 해시를 추가하여 쿼리 문자열 조작을 방지 하시겠습니까?
- 28. 문자열 필터링/조작을 더 효과적으로 수행
- 29. NSValueTransformer에서 문자열 조작을 수행하는 방법은 무엇입니까?
- 30. BB 코드 조작을 중지하는 방법은 무엇입니까?
그리고 질문은 ...? – Krab
당신은 질문을 알지 못함에도 불구하고 +1을주었습니다. :-) –