문제

실용적인 용도가 있나요? TypedReference 실제 코드에서 실제로 사용할 구조체는 무엇입니까?

편집하다:.Net 프레임워크는 이를 과부하에 사용합니다. Console.WriteLine 그리고 String.Concat 이는 __arglist 매개변수를 지정하고 이를 일반으로 전달합니다. params 초과 적재.이러한 과부하가 존재하는 이유는 무엇입니까?

도움이 되었습니까?

해결책

실제 코드에서 실제로 사용할 TypedReference 구조의 실제 용도가 있습니까?

예. C 스타일의 variadic 방법과 상호 운용성이 필요한 경우 사용할 것입니다.

이러한 과부하가 존재하는 이유는 무엇입니까?

이들은 C 스타일의 variadic 방법을 사용하는 발신자와 상호 운용성을 위해 존재합니다.

다른 팁

이것은 매우 오래된 질문인 것 같지만 사용 사례를 하나 더 추가하고 싶습니다.구조체가 있고 리플렉션을 통해 해당 변수를 설정하려는 경우 항상 박스형 값에 대해 작업하고 원본을 변경하지 않습니다.이것은 쓸모가 없습니다:

TestFields fields = new TestFields { MaxValue = 1234 };
FieldInfo info = typeof(TestFields).GetField("MaxValue");
info.SetValue(fields, 4096);

// result: fields.MaxValue is still 1234!!

묵시적 권투로 이 문제를 해결할 수 있지만, 그렇게 하면 유형 안전성이 약화됩니다.대신, 이 문제를 다음으로 해결할 수 있습니다. TypedParameter:

TestFields fields = new TestFields { MaxValue = 1234 };
FieldInfo info = fields.GetType().GetField("MaxValue");

TypedReference reference = __makeref(fields);
info.SetValueDirect(reference, 4096);

// result: fields.MaxValue is now indeed 4096!!
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top