Polimorfizm dla typow null.

0

Czesc, mecze sie z pewna rzecza, a mianowicie chialbym uzyc statycznego polimorfizmu, dla typow string oraz null. Powiedzmy mamy taka sytuacje

        public object Cos()
        {
            bool? some = service.someMethod() ? service.getSomething() : null;

            return this.Filters(some);
        }

Teraz chcialbym uzyc polimorfizmu, zeby byl jeden if mniej, i zeby logika leciala od razu do odpowieniej metody, a nie warunkowac. Wiadomo o co chodzi. Jak w takiej sytuacji moge to zrobic

        public object Filters()
        {
            bool? some = service.someMethod() ? service.getSomething() : null;

            return this.Filters[key](some);
        }

  public object Filters(bool param)
        {
            // cos;
        }
 
  public object Filters(Nullable<bool> param)
        {
            // cos;
        }

Niestety caly czas wchodzi do Nullable<bool>, mimo ze wartosc some raz jest null a raz true. Zna ktos moze jakis sposob?

Niechcacy nacisnalem enter. ;/

0

Z tego co zauwazylem problem jest przy nowym przypisaniu, ale nadal nie wiem dlaczego.

1

Zawsze wchodzi do Nullable<bool> bo typ zmiennej some zawsze jest Nullable<bool>. Nawet gdy wartość ta ustwiona jest na True lub False to nadal jest Nullable<bool>.

0

Ok, to wywnioskowalem, a jak sie tego pozbyc ?

0

Użyj zmiennej typu bool.

0
bool? some = service.someMethod() ? service.getSomething() : null;

Jak moge uzyc zmiennej typu bool jak mam null we warunku ?

0

To nie miej null w warunku. Mając zmienną typu X nie wywołasz metody typu Y.

A w ogóle, to gdzie tu ten tytułowy polimorfizm?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.