[C#] partials, communicatie tussen classes

Pagina: 1
Acties:
  • 135 views sinds 30-01-2008
  • Reageer

  • simon
  • Registratie: Maart 2002
  • Nu online
Beste luitjes,

Ik ben C# aan 't 'verkennen' / leren en nu heb ik meerdere forms die onderling moeten communiceren. Maar ik kom er totaal niet uit;

• VS.net genereerd partial classes, heel onhandig, ik kan zo niet de functies van een andere class uitvoeren
• ik las ergens dat het doorgeven van classes als reference niet zo netjes was

Vs.net genereerd dus die onhandige partial classes (voor windows), waardoor ik dus niet de functies van een andere class zomaar kan gebruiken.

Nu vond ik iets totaal anders, mediators, om zo classen met elkaar te laten communiceren, maar dat vond ik niet erg helder, ik wil ook 't simpel houden.

|>


  • Flard
  • Registratie: Februari 2001
  • Laatst online: 19-04 14:51
Hè?

Een partial class is júist heel handig. Je hebt gewoon een class die over meerdere fysieke files verdeeld is. Op die manier staat al die standaard windows designer zooi in een aparte file, aangezien je daar in principe toch niet in mag rommelen, en staat alle échte logica van je form-class in een aparte file.

Voor de rest zijn er geen verschillen tussen partial classes en normale classes?

In een partial class kun je in de ene helft gewoon functies aanroepen in de andere helft.
En voor andere classes die een partial class aan willen roepen is er ook geen probleem!?


Heb je misschien een voorbeeld van wat er mis gaat?

  • whoami
  • Registratie: December 2000
  • Laatst online: 06:06
[quote]Simon schreef op vrijdag 06 januari 2006 @ 17:08:


• VS.net genereerd partial classes, heel onhandig, ik kan zo niet de functies van een andere class uitvoeren

Ik zie het verband niet tussen partial classes en al of niet functies van een andere class kunnen uitvoeren ?
Partial classes zijn net handig, omdat je nu de designer generated code niet hoeft te zien.
Nu vond ik iets totaal anders, mediators, om zo classen met elkaar te laten communiceren, maar dat vond ik niet erg helder, ik wil ook 't simpel houden.
Het mediator pattern bedoel je ?

En wat is je vraag nu ?

https://fgheysels.github.io/


  • Bergie
  • Registratie: Augustus 2000
  • Laatst online: 16-04 14:10

Bergie

Lekker belangrijk...

Ik snap ook niet helemaal goed wat je bedoelt maar heb je hier misschien iets aan?

[rml]whoami in "[ VB.NET] waardes van een andere form?"[/rml]

Yamaha MT-09


  • simon
  • Registratie: Maart 2002
  • Nu online
niet echt een helder concreet voorbeeld, maar ik heb dus door vs.net 2 partial classes, een is de designer, de andere is de 'functionaliteit'.

Nu heb ik 2 forms. Form1 create form2. Maar nu wil ik vanuit form2 (oftewel class2) een functie in Form1(oftewel class1) aanroepen. Nu kan ik proberen this mee te geven als reference, maar goed gaat dat niet. Deze geeft iets van read-only, dus die wil niet. Dan kun je 'm ook nog gewoon meegeven, maar dat lukt niet, want dan krijg ik alleen maar de eigenschappen van het form, en niet de functies binnen een form. Als ik 'm niet meer partial maak dan krijg ik wel de functies, maar dat schiet niet op, want dan kan ik 'm niet meer designen vanuit VS.net...

niet zo snel allemaal hierboven, ik gaat delegate verhaal doorlezen.

[ Voor 8% gewijzigd door simon op 06-01-2006 18:08 ]

|>


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 19-04 23:27

Gerco

Professional Newbie

Zijn je methods misschien allemaal private? Dan kun je ze niet aanroepen van buiten je class.

Post anders een stukje van de class die je wilt aanroepen en een stukje van de aanroepcode, misschien snappen we het dan beter.

[ Voor 42% gewijzigd door Gerco op 06-01-2006 18:15 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Nvidiot
  • Registratie: Mei 2003
  • Laatst online: 11-01 23:32

Nvidiot

notepad!

Hij maakt vanuit class1 class2 aan, en hij wil vanuit class2 een method uit class1 aanroepen. Zijn vraag is hoe hij een reference naar class1 in class2 krijgt zodat ie die methods kan aanroepen.

What a caterpillar calls the end, the rest of the world calls a butterfly. (Lao-Tze)


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 19-04 23:27

Gerco

Professional Newbie

Zoiets dus?
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;

class Class1 {
  private Class2 c2;

  public Class1() {
  }

  public void DoeIetsCools() {
    Console.WriteLine("Iets cools");
  }

  public void MaakEenClass2() {
    c2 = new Class2(this);
  }

  public static void Main(String[] args) {
    Class1 c = new Class1();
    c.MaakEenClass2();
  }
}

class Class2 {
  public Class2(Class1 c1) {
    c1.DoeIetsCools();
  }
}

[ Voor 13% gewijzigd door Gerco op 06-01-2006 18:28 . Reden: Wat syntax errors verbeterd ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • simon
  • Registratie: Maart 2002
  • Nu online
Gerco schreef op vrijdag 06 januari 2006 @ 18:24:
Zoiets dus?
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;

class Class1 {
  private Class2 c2;

  public Class1() {
  }

  public void DoeIetsCools() {
    Console.WriteLine("Iets cools");
  }

  public void MaakEenClass2() {
    c2 = new Class2(this);
  }

  public static void Main(String[] args) {
    Class1 c = new Class1();
    c.MaakEenClass2();
  }
}

class Class2 {
  public Class2(Class1 c1) {
    c1.DoeIetsCools();
  }
}
jep, zover was ik onderhand wel ;) maar doe dat maar eens met forms, om een of andere reden kun je de functies van forms dan niet aanspreken....

hoe stom kun je 't maken, public vergeten :X

[ Voor 5% gewijzigd door simon op 06-01-2006 19:12 ]

|>

Pagina: 1