Tworzę własny typ do reprezentowania wartości css (np. Pikseli np. 12 pikseli). Aby móc dodawać/odejmować/mnożyć/... mój typ i int, zdefiniowałem dwóch niejawnych operatorów zi do int. Wszystko działa świetnie z wyjątkiem jednej rzeczy .. Jeśli piszę:C# Operatory niejawne i ToString()
CssUnitBase c1 = 10;
Console.WriteLine(c1);
uzyskać „10” zamiast „10px” - niejawna konwersja na int jest używany zamiast metody toString(). Jak mogę temu zapobiec?
Czy możesz wysłać kod do klasy 'CssUnitBase'? Od sposobu, w jaki go używasz, wydaje się być owijką wokół int. – Oded
ut opisuje sposób przechowywania wewnętrznej wartości CssUnitBase i sposobu jej zwrócenia. "Talk jest tani, pokaż nam kod" – vaitrafra
@vaitrafra: Nie widzę, jak to w ogóle zależy. Istnieje niejawna konwersja do/z int i przesłonięcie dla ToString. To są fragmenty publicznego interfejsu API, które są istotne w tym pytaniu i nie sądzę, aby ich implementacja w ogóle miała znaczenie. To, co się nazywa, jest istotne. –