C # Osaluokka ja osamenetelmä (esimerkkien kanssa)

Tässä artikkelissa aiomme oppia kuinka ja miksi osaluokka- ja osamenetelmät toteutetaan C #: ssä.

On monia tilanteita, joissa joudut ehkä jakamaan luokan määritelmän, kuten suurten projektien parissa, useiden kehittäjien ja ohjelmoijien on ehkä työskenneltävä samalla luokalla samanaikaisesti. Tässä tapauksessa voimme käyttää ominaisuutta nimeltä Partial Class .

Johdatus osaluokkaan

Ohjelmoimalla C #: ssä (tai OOP: ssa) voimme jakaa luokan määritelmän kahteen tai useampaan lähdetiedostoon. Lähdetiedostot sisältävät osan luokan määritelmästä, ja kaikki osat yhdistetään sovellusta käännettäessä. Luokan määritelmän jakamiseksi meidän on käytettävä partialavainsanaa.

Esimerkki 1:

Meillä on nimeltään projekti, HeightWeightInfojoka näyttää pituuden ja painon.

Meillä on tiedosto, jonka nimi File1.cson osittainen luokka nimeltä Record. Siinä on kaksi kokonaislukumuuttujaa h & w ja menetelmä / konstruktori nimeltään Record, joka määrittää h & w: n arvot.

 namespace HeightWeightInfo ( class File1 ( ) public partial class Record ( private int h; private int w; public Record(int h, int w) ( this.h = h; this.w = w; ) ) )

Tässä on toinen tiedosto nimeltä File2.cs, jolla on sama osaluokan tietue, jolla on vain menetelmä PrintRecord. Tämä menetelmä näyttää h & w -arvot.

 namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )

Täällä voimme nähdä projektin päämenetelmän:

 namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )

Täällä meillä on luokan Record kohde myRecord-muodossa, joka välittää parametriarvot 10 ja 15 arvoksi h ja w vastaavasti kohdassa määriteltyyn menetelmään File1.cs.

Menetelmä PrintRecord kutsutaan objektissa myRecord, joka on määritelty File2.cs.

Tämä osoittaa, että partialavainsana auttaa yhdistämään kaikki eri tiedostoissa määritellyt luokan määritteet toimimaan yhtenä luokkana.

Paikkoja, joissa partialluokkaa voidaan käyttää:

  1. Työskennellessään suuremmissa projekteissa, joissa on useampi kuin yksi kehittäjä, se auttaa kehittäjiä työskentelemään samalla luokalla samanaikaisesti.
  2. Koodeja voidaan lisätä tai muokata luokkaan luomatta uudelleen lähdetiedostoja, jotka IDE (ts. Visual Studio) automaattisesti luo.

Muistettavia asioita osaluokasta

partialAvainsana täsmennetään, että muualla luokka voidaan määritellä nimiavaruuteen. Osa-avainsanan käyttö on pakollista, jos yritämme tehdä luokan osittaiseksi. Kaikkien luokan osien tulisi olla samassa nimitilassa ja käytettävissä kokoamisajankohtana lopullisen tyypin muodostamiseksi. Kaikilla osilla on oltava sama pääsymuuttuja eli yksityinen, julkinen tai niin edelleen.

  • Jos jokin osa julistetaan abstraktiksi, koko tyyppiä pidetään abstraktina.
  • Jos jokin osa julistetaan sinetöityksi, koko tyyppi katsotaan sinetöidyksi.
  • Jos jokin osa ilmoittaa perustyypin, koko tyyppi perii kyseisen luokan.
  • Kaikki osittaisessa määritelmässä ilmoitetut luokan jäsenet ovat kaikkien muiden osien käytettävissä.
  • Osaluokan kaikkien osien tulisi olla samassa nimitilassa.

** Huomaa:partial muokkaaja ei ole käytettävissä delegoida tai luettelointi ilmoitusten

Osittaisten menetelmien käyttöönotto

Osaluokka voi sisältää osittaisen menetelmän. Yksi luokan osa sisältää menetelmän allekirjoituksen. Valinnainen toteutus voidaan määritellä samassa tai toisessa osassa. Jos toteutusta ei toimiteta, menetelmä ja kaikki puhelut poistetaan kääntöhetkellä.

Esimerkki 2:

Otetaan esimerkki Carmääriteltynä file1.csosaluokkana , jossa on kolme menetelmää InitializeCar (), BuildRim () ja BuildWheels (). Näiden menetelmien joukossa InitializeCar määritellään seuraavasti partial.

 public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )

Ja meillä on toinen tiedosto nimeltä nimeltä file2.csjolla on kaksi tapaa BuildEngine ja InitializeCar. Menetelmä InitializeCar on osittainen menetelmä, joka määritellään myös kohdassa file1.cs.

 public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )

Osittainen menetelmäilmoitus koostuu kahdesta osasta:

  1. Määritelmä kuten kohdassa file1.cs.
  2. Toteutus kuten file2.cs.

Ne voivat olla osaluokan erillisissä osissa tai samassa osassa.

Muistettavaa osittaisesta menetelmästä

  • partial avainsana.
  • palautustyyppi void .
  • epäsuorasti private.
  • eikä voi olla virtual.

Mielenkiintoisia artikkeleita...