Polimorfizm dla typow null.

Polimorfizm dla typow null.
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
        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

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

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

Kopiuj
  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. ;/

  • Rejestracja: dni
  • Ostatnio: dni
0

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

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
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>.

  • Rejestracja: dni
  • Ostatnio: dni
0

Ok, to wywnioskowalem, a jak sie tego pozbyc ?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Użyj zmiennej typu bool.

  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
bool? some = service.someMethod() ? service.getSomething() : null;

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

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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.