는 난이 허용되는이 함수 문자열 배열 보내면 IComparable
IComparable의 배열을 허용하는 함수에 int 배열을 보내는 방법은 무엇입니까?
public static void sort(IComparable[] a){//...}
의 어레이를 수용하는 C# 1 기능을 가지고 있지만, int 배열은 구조 Int32
가 IComparable
연장에도 허용되지 않는다.
public struct Int32 : IComparable, IFormattable,
IConvertible, IComparable<int>, IEquatable<int>
첫 번째 질문은 값 유형의 배열을 이러한 함수에 보낼 수없는 이유입니다.
두 번째 질문은 IComparable
의 배열을 허용하는 함수에 값 유형의 배열을 보내야하는 방법입니다.
@PetSerAl : 다른 이유로 실패합니다. 여전히 참조 배열이므로 실행시에는 호환되지 않을 것입니다. "값 유형 배열에서 참조를 읽을 수 없다"는 것이 무슨 뜻인지 명확하지 않습니다 - 값 유형 배열에 참조를 전혀 저장할 수 없습니다 ... –
@PetSerAl : 예외를 던지지 않는다면 IComparable c = x [0];처럼 박스형의 int를 참조하는 것이 합리적 일 것이다. 그게 값 형식 배열에 대한 참조를 저장하려고 노력하는 것보다 나에게 훨씬 더 제정신이 아닐 수 있습니다. –
@PetSerAl : Unboxing은 항상 명시 적입니다. 권투는하지 않습니다. 나는 당신이 더 명확한 대답을 쓸 수 있다고 생각한다면, 그렇게 함 - 나는 여기서 당신의 요지를 이해하기가 어렵다는 것을 알고 있으며, 논평은 이것을 토론하는 좋은 방법이 아님을 제안한다. –