c# funkcja z różnymi parametrami

0

Witam,

próbuje popełnić pewien programik,

Mam klace CPodstawa z której dziedziczą klasy wynikowe , każda z klas wynikowych ma mieć funkcję PobierzStan jednak dla każdej klasy funkcja przyjmuje inną strukturę która jest wypełniana danymi

np: CUrzadzenie1:CPodstawa int PobierzStan(ref strukturaUrzadzenia1)
CUrzadzenie2:CPodstawa int PobierzStan(ref strukturaUrzadzenia2)

Czy wiecie może w jaki sposób "wymusić" na klasie wynikowej wystąpienie funkcji PobierzStan (pamiętając że dla każdej klasy będzie miała inny argument)

z góry dzięki za pomoc

0

CPodstawa powinna być klasą generyczną (pewnie powinna być abstrakcyjna):

class CPodstawa<T> where T: struct
{
  public virtual int PobierzStan(ref T device)
  {

  }
}

Nie musisz mieć "where T: struct". Ale jeśli chcesz, to zamiast struct możesz dać nazwę klasy, po której dziedziczą: strukturaUrzadzenia1 i 2. Przy okazji - czemu używasz struktur zamiast klas tutaj?

Kolejne klasy po niej dziedziczą:

class CUrzadzenie1: CPodstawa<StrukturaUrzadzenia1>
{
    public override int PobierzStan(ref StrukturaUrzadzenia1 device)
    {

    }
}

I analogicznie druga klasa.

Drugim sposobem jest to, żeby metody PobierzStan przyjmowały argument typu object. I w konkretnych klasach po prostu rzutujesz. Zasadniczo jest to gorszy pomysł, ale wszystko zależy od tego, co chcesz osiągnąć i co potrzebujesz.

0

A po co tam jest ref? Manipulujesz stanem przekazanego obiektu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1