케빈 헤니 (Kevlin Henney)의 논문 Valued Conversions은 소위 변형 값 유형 기능에 대한 동기와 C++ 구현의 개요를 제공합니다. 그것은 좋은 읽기이며 정확히 내가 C#에서 사용할 수있는 싶습니다 : 다른 value-types의 값을 저장할 수있는 일반적인 유형을 다루고 있습니다.변형 값 유형을 만들 수 있습니까?
C#에서 이와 비슷한 것을 찾을 수 없었습니다. 그래서 비슷한 질문은 "이것은 아마도 당신이 원하는 것이 아닙니다"와 같은 불만족스러운 대답과 의견을 가지고 있습니다. 이것은 일반적으로 필요한 기능처럼 보였기 때문에 저를 놀라게합니다. Henney의 C++ boost::any 클래스가 널리 사용됩니다.
C#에서이 기능을 만들 수 있습니까?
편집 : 답변 중 하나에 대한 응답으로 제네릭이 그 트릭을 수행 할 것이라고 생각하지 않습니다. 제네릭을 사용하려면 개발자가 Variant
변수가 보유하고있는 값 유형의 종류를 알고 있어야하며 그 유형은 특정 Variant
변수에 대해 불변이됩니다. 하지만 제가 말하는 Variant
유형은 다른 유형을 보유 할 수 있어야합니다. 예를 들어, 함수 Variant ReadValue()
은 파일에서 항목을 읽고 구문 분석하고 그에 따라 Variant
값을 채운 다음 반환 할 수 있습니다. 발신자는 반환 된 Variant
에 어떤 종류의 유형이 포함될 지 미리 알지 못합니다.
'Object' 유형으로 선언하는 것은 어떨까요? – bhamlin
@bhamlin'Object'를 사용하는 것이 적절할까요? 나는 C#을 처음 접했기 때문에 잘 모르겠습니다. 그 접근 방식은 너무 좋아요. 왜냐하면'Object'는 기본적으로 값이 아닌 타입을 포함해서 아무것도 될 수 없기 때문입니다. –