[C#] Weten welk object de 'base' gebruikt

Pagina: 1
Acties:

  • robertpNL
  • Registratie: Augustus 2003
  • Niet online
Progs,

Is het mogelijk om te weten welk object wordt gebruikt binnen de 'base' class?

Een voorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class FormBase
{      
  public FormBase()
  {
    Console.WriteLine(this.Name);    // <-- Response: FormBase. En moet FormOverride zijn
  }
}

class FormOverride : FormBase
{
    public FormOverride()
    {
    }
}


Nou, dit stukje code is zeker te begrijpen. Nu is er een object 'FormOverride'. Tijdens het initializeren hiervan wordt de constructor aangeroepen van FormBase. De keyword 'this' verwijst uiteraard naar zichzelf (dus 'FormBase' als property Name). Maar nu wil ik weten wie het object is die van hem gebruik maakt binnen Formbase constructor. En nee, 'base' verwijst ook naar Formbase.

Het zal wel simpel zijn, maar ik kom er niet achter en ga nu twijfelen of dat uberhaupt wel kan. :)

PS layout van code ziet er niet uit. Enorm veel enters, maar er staan echt een enkele enter achter iedere lijn.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
virtual methods. :)

Echter, die moet je niet binnen constructors gebruiken want dit levert niet echt de verwachte resultaten op.

https://fgheysels.github.io/


  • robertpNL
  • Registratie: Augustus 2003
  • Niet online
whoami schreef op donderdag 01 februari 2007 @ 11:21:
virtual methods. :)

Echter, die moet je niet binnen constructors gebruiken want dit levert niet echt de verwachte resultaten op.
Errghh.....ja. :) Inderdaad, dit werkt niet in de constructors. Bedankt.

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Als class B van class A inherit, dan is A niet een object binnen B, maar onderdeel van B. Ze versmelten zeg maar tezamen tot B. De methods/properties in A worden dan beschikbaar binnen B, tenzij ze private waren binnen de CODE van A. Wil je binnen B een method/property van A overrulen, dan moet binnen A die method/property 'virtual' zijn en je override dan de method/property binnen B.

Er is een verschil tussen class en object. Wanneer jij een instance van B aanmaakt, dus een object, dan krijg je de code van A erbij, die zit erin omdat A + B tezamen de code voor B vormen. ERG simpel voorbeeld:
http://weblogs.asp.net/fbouma/archive/2003/05/07/6611.aspx

Het helpt wellicht dat je uitlegt waarom je wilt wat je beschrijft in je startpost :)

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com