Jestem dziurkowana, wiem. Ale kiedy implementujesz interfejs IConvertible na strukturze, która zawiera tylko wartość boolowską (a zatem ma tylko dwa stany), jaka jest zalecana wartość, aby powrócić z IConvertible.GetTypeCode()
? Struktura jest niejawnie wymienialna i porównywalna z boolowską iw prawie każdym aspekcie innym niż ciąg znaków i reprezentacja XML, to faktycznie jest boolowska.Implementacja IConvertible.GetTypeCode
Czuję się jakbym leżał na ramie, jeśli wrócę TypeCode.Boolean
, ale TypeCode.Object
wydaje się niepotrzebnie niejasna. Czy istnieją jakieś rzeczywiste konsekwencje we wdrażaniu tej metody we własnych strukturach?
IConvertible.GetTypeCode on MSDN
Dzięki, od czasu do czasu sprawdziłem Reflector i znalazłem kilka metod niskiego poziomu, które mają do niego dostęp, takie jak System.Variant.MarshalHelperConvertObjectToVariant. Domyślam się, że nie ma żadnego powodu, dla któregobym mógł go reklamować jako boolean, więc najlepszym sposobem działania jest po prostu zwrócenie TypeCode.Object. – Josh
To jest to, co polecam, chyba że masz silny powód, aby tego nie robić. Ustawienie go na Boolean może mieć niezamierzone konsekwencje. –