Właśnie zauważyłem, że można to zrobić w C#:C#: Jak to działa: Unit myUnit = 5;
Unit myUnit = 5;
zamiast to zrobić:
Unit myUnit = new Unit(5);
Czy ktoś wie, w jaki sposób można to osiągnąć z moich własnych strukturach? Spojrzałem na moduł Unit z reflektorem i zauważyłem, że został użyty atrybut TypeConverter, ale po utworzeniu niestandardowego TypeConvertera dla mojej struktury nadal nie mogłem uzyskać kompilatora pozwalającego na taką wygodną składnię.
Oooh zawsze nowe rzeczy uczyć się - nie mogę uwierzyć, że nigdy nie spotkałem się z tym przed – cbp
Istnieje również "wyraźny" rzut - działa tak samo, ale osoba dzwoniąca musi dodać (Jednostka); zwykle używane, gdy istnieje ryzyko utraty danych (precyzja/zasięg/skala/itp. - na przykład float => int) –
Przeciążanie operatorów jest bardzo potężne, ale lekko stąpajcie, kiedy to robicie: Łatwo jest stworzyć kod, który kończy się bardzo nieprzewidywalny dla programistów konserwacji. Użyj go, gdy jest to właściwe (np. W przypadku urządzenia), ale nie przesadzaj. (I zawsze upewnij się, że jest dobrze udokumentowany!) –