Autor Beitrag
inlove21
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 25.01.08 14:01 
Hallo zusammen!

Ich habe zwei Fragen zu einem mir vorliegenden Quelltext. Leider kenne ich mich mit C oder C# kaum aus, vielleicht kann mir hier jemand weiter helfen:

ausblenden C#-Quelltext
1:
m_aCredentialForm = new FinCredentialForm(base.Text);					

Was genau macht base.Text?

Weiß jemand ob der C# Ausdruck "this" dem Visual Basic Ausdruck "Me" entspricht? Gibt es irgendwo eine Dokumentation über die genaue Funktionsweise von this? Habe bisher leider nichts brauchbares gefunden.

Zusatzfrage:
ausblenden C#-Quelltext
1:
public class FinPadForm : Form, IFinDocket					

Was bedeutet IFinDocket in dieser Syntax?
Also FinPadForm ist eine Unterklasse von Form, aber was bedeutet der Rest?

Danke schonmal!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 25.01.08 15:31 
this ist das Äquivalent zum VB Me. Base ruft Eigenschaften und Methoden der Elternklasse auf, also in Deinem Beispiel den Wert der Eigenschaft Text, wie er von der Basisklasse zurückgeliefert wurde. Das ist nützlich, wenn Methoden und Eigenschaften überschrieben werden, bspw. findet man das auch immer, wenn man mittels override Methoden überschreibt. Da wird vom Designer automatisch ein Base.Methode(...) eingefügt, um den Code der Elternklasse ausführen zu können.

Eigentlich sind mehrere Fragen in einerm Thread nicht erlaubt, aber hier geht es ja sowieso um Vererbung: Das IFinDocket ist ein Interface, das von der Klasse FinPadForm implementiert wird, hier geht es nicht um Mehrfachvererbung, wie man als C/C++-Kundiger evtl. vermuten könnte ;)
inlove21 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 25.01.08 15:42 
Danke erstmal, das hilft mir schon mal etwas weiter.
Was ich nich nicht so ganz verstehe ist der Sinn von base.text - du schreibst das liefert den Wert des Textfeldes der Basisklasse zurück. Das wird verwendet in der von mir in der Zusatzfrage kopierten Quellcode, d.h. doch dass die Basisklasse Form ist. Was konkret liefert das denn dann zurück? Die Klasse FinPadForm ist doch nur eine Subklasse von Form, aber Form wird nirgends konkret ein Text zugewiesen.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 25.01.08 15:52 
user profile iconinlove21 hat folgendes geschrieben:
Danke erstmal, das hilft mir schon mal etwas weiter.
Was ich nich nicht so ganz verstehe ist der Sinn von base.text - du schreibst das liefert den Wert des Textfeldes der Basisklasse zurück. Das wird verwendet in der von mir in der Zusatzfrage kopierten Quellcode, d.h. doch dass die Basisklasse Form ist. Was konkret liefert das denn dann zurück? Die Klasse FinPadForm ist doch nur eine Subklasse von Form, aber Form wird nirgends konkret ein Text zugewiesen.

Das hängt davon ab, wie die Klasse funktioniert, aber hier mal ein Beispiel (hoffe, dass ich das so adhoc hier korrekt zusammentippsel):
Das ist die Basisklasse:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
public class BaseClass
{
  protected string text;
  public overridable string GetText()
  {
    return text;
  }
}

und davon wird abgeleitet und GetText überschrieben:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
public class AncestorClass: BaseClass
{
  public overrides string GetText()
  {
    return "Dies ist ein Text: "+text;
  }

  public string DoSomething
  {
    string text = base.GetText();
    return text; //Gibt nur den inhalt von der variablen text zurück
  }
}

Die Methode GetText liefert jetzt einen anderen Wert zurück. In der Methode DoSomething brauche ich aber den Originaltext, ohne den Zusatz. Hier muss ich also die Methode Basisklasse aufrufen, um den korrekten Wert zu bekommen. Was in Deiner Klasse genau läuft, kann ich Dir leider nicht sagen, da ich den Code natürlich nicht vollständig habe ;)
inlove21 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 25.01.08 23:46 
Hier der komplette Quellcode.

Ich will etwas ähnliches in VB programmieren aber bin am verzweifeln. Erstens weiß ich nicht, wie ich den Ausdruck base.text da hinbekommen soll und zweitens muss der Typ der Klasse IFinDocket sein, da weiß ich auch nicht, wie das genau funktioniert.

Wäre echt toll, wenn mir da jemand helfen könnte!
Einloggen, um Attachments anzusehen!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Sa 26.01.08 00:11 
Nur so mal ganz schnell noch: Schau Dir in VB mal Inherits für die Vererbung und Implements wegen dem Interface an:
ausblenden Quelltext
1:
2:
3:
public class FinPadForm:
   Inherits Form: Implements IFinDocket
 '...

So in etwa ;)
inlove21 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 28.01.08 13:37 
Ok, das Einbinden des Interfaces hat schon mal funktioniert, da steht jetzt:
ausblenden Quelltext
1:
2:
3:
Public Class Form10
    Inherits System.Windows.Forms.Form : Implements Subsembly.FinTS.Online.IFinDocket
End Public


Jetzt ist es allerdings erforderlich, dass die Klasse verschiedene Methoden von IFinDocket implementiert, z.B. diese in C#:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
bool IFinDocket.CancelFlag
  {
    get
    {
      return false;
    }
  }


Weißt du vielleicht gerade auch, wie das in VB geht? Ich find zu dem Problem keine gescheite Doku, ich dreh bald am Rad!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 28.01.08 14:47 
Mach Dich mal über Property schlau, das ist das, was Du hier brauchst. Mehr kann ich Dir gerade leider nicht sagen, halte nen Kurs ;)
inlove21 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 28.01.08 17:58 
Klappt jetzt alles, danke! :)