Realizowanie Interface'u klasy za pomocą jej składowej.

0

Mam pewną klase pochodna z interfejsem np IList. Wewnątrz klasy mam prywatną składową typu List.

class MojaKlasa : KlasaBazowa, IList
{
   private List mList = new List();
   //...
}

I teraz chciałbym, aby metody interfejsu IList moja klasa realizowała w sposób inplicit odwołując się do metod składowej mList. Istnieje jakaś magiczna konstrukcja do tego ?

0

ale przecież interfejs nie może mieć ciał metod - wszystko implementujesz w klasie, która implementuje dany interfejs

0

No ale ja nie definiuje interfejsu tylko klase i własnie w tej klasie chce zaimplementować interfejs IList tak, aby korzystał z metod mList.
Moge napisać :

class MojaKlasa : KlasaBazowa, IList
{
   private List mList = new List();
   int IList.Count { get { return mList.Count; } }   
   int IList.Clear() { mList.Clear(); } }
   //i tak dalej cała masa metod i własności

ale nie da się tego uprościć ? Jakoś wskazać, że jeśli odwołuje się do interfejsu IList poprzez obiekt klasy MojaKlasa to zostanie zwrócony interfejs składowej mList ? Jakiś zapis typu

class MojaKlasa ...
   IList JakoIListInterface() { return mList  as IList; };
}

//..
MojaKlasa  MK = new MojaKlasa();
IList il = MK as ILIst; //i tu zwróci wartość funkcja 'JakoIListInterface'

//EDIT:

doszedłem do wniosku że jest to niemożliwe. Jeśli 'il' zawiera interfejs do 'mList', to 'il as Moja' klasa zawiedzie.
po prostu ((MK as IList) as MojaKlasa ) da null.

Koniec tematu.

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