홈>
ValueType 확장 메서드를 사용할 수 있습니다
public static string ToStringN(this ValueType value)
{
return Convert.ToString(value, System.Globalization.CultureInfo.InvariantCulture);
}
그러나 ValueType 배열의 확장 메소드를 사용할 수 없습니다.
public static void FastReverse(this ValueType[] arr)
{
for (int i = 0; i < arr.Length / 2; i++)
{
ValueType tmp = arr[i];
arr[i] = arr[arr.Length - i - 1];
arr[arr.Length - i - 1] = tmp;
}
}
- 답변 # 1
관련 자료
- c# - Dependency Injection과 Extension 메서드가 상호 작용하는 방법이 있습니까?
- c# - ASPnet Core MVC 31의 HtmlHelper에 대한 확장 메서드에서 DataAnnotation 지역화 사용
- scala3 확장 메서드 유형 매개 변수
- c# - 호출되는 확장 방법
- NET 소켓 DisconnectAsync 작업 확장 메서드
- c# - Method Produces-> 확장 메소드는 제네릭이 아닌 정적 클래스에서 정의해야합니다
- java - 문자로 분리 및 분할 (CSV 확장자 제외)
- ios - Int의 글꼴을 반환하는 확장 메서드를 제공하고 싶습니다 맞습니까?
- asp.net core - 열거 형 문자열이 아닌 HTML 도우미 선택 확장 방법 가져 오기
- c# - IQueryable 에서 마지막 요소를 가져 오는 확장 메소드
- c# - 왼쪽 외부 조인 확장 방법 linq
- Objective-C에서 Swift 확장 방법 사용
- playframework - 매끄러운 확장 방법의 다 대다 버전
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
알다시피, 이것은 작동합니다 :
이것은
그러나 pyzwyz의 확장 방법을 사용하는 경우 ,int
때문입니다ValueType
입니다 그래서 어떤 확장 방법을 사용하든ValueType
int
그것도 있습니다.이것은
해결 방법은 제네릭을 사용하고 매개 변수를public static void FastReverse(this ValueType[] arr) { for (int i = 0; i < arr.Length / 2; i++) { ValueType tmp = arr[i]; arr[i] = arr[arr.Length - i - 1]; arr[arr.Length - i - 1] = tmp; } } // usage: int[] a = {1,2,3}; a.FastReverse(); // Can't find this method!
때문입니다 그리고int[]
서로 하위 유형이 아닙니다. 예를 들어 컴파일되지 않습니다 :ValueType[] a = new int[10];
로 제한하는 것입니다. :public static void FastReverse<T>(this T[] arr) where T: struct { for (int i = 0; i < arr.Length / 2; i++) { T tmp = arr[i]; arr[i] = arr[arr.Length - i - 1]; arr[arr.Length - i - 1] = tmp; } }
에서 작동하지 않으므로 의도 한 동작이 아닐 수도 있습니다. .int?[]