Tag: Enum

Prostsze rzucanie wyjątków, gdy nie mamy obsłużonego Enuma

Chcemy rzucić wyjątkiem, gdy mamy przypadek nieobsłużony poprzez case’y. Na przykład gdy pojawiła się nowa wartość enuma Shape. using System; using JetBrains.Annotations; public class EnumGuard { [Pure] public static ArgumentOutOfRangeException CreateMissingEnumException<T>(string paramName, T value) where T : struct { return new ArgumentOutOfRangeException( paramName, value,… Continue Reading „Prostsze rzucanie wyjątków, gdy nie mamy obsłużonego Enuma”

Jaki wyjątek rzucać gdy mamy nieobsłużonego enuma

Bardziej aktualnie: Prostsze rzucanie wyjątków, gdy nie mamy obsłużonego Enuma Gdy sterujemy przepływem sterowania za pomocą switcha i tym co sprawdzamy jest enum to warto obsłużyć też przypadek default. Czyli co stanie się gdy enum ma wartość spoza tych wymienionych w case‚ach. Warto wtedy… Continue Reading „Jaki wyjątek rzucać gdy mamy nieobsłużonego enuma”

Jak wygląda poprawna implementacja enuma

Tak IMHO powinien wyglądać dobrze napisany enum: Nie enumerujemy od zera „0” jest domyślną wartością dla enuma (bo pod spodem musi być typ całkowity). Dlatego chcemy aby nasze znaczące wartości zaczynały się od jedynki. Wtedy prościej wyśledzić w której ścieżce wykonania jest błąd, spowodowany… Continue Reading „Jak wygląda poprawna implementacja enuma”

Rzutowanie na Enum z niepewnego źródła

TLDR Gdy MyEnum nie ma wartości -13, to poniższy kod się wykona poprawnie i w enumie będziemy mieli wartość spoza zakresu enuma. Właściwa treść Mamy enum: I chcemy wykonać prostą operacje utworzenia tego enuma, tyle że posiadamy jedynie wartość liczbową (z zewnętrznego źródła danych).… Continue Reading „Rzutowanie na Enum z niepewnego źródła”