Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C# class in Delphi Win32 class 'übersetzen' (https://www.delphipraxis.net/85967-c-class-delphi-win32-class-uebersetzen.html)

Elicia 7. Feb 2007 09:01


C# class in Delphi Win32 class 'übersetzen'
 
Hallo,

habe leider keine Ahnung von C#, möchte aber eine Klasse in Delphi Win32 übernehmen - scheitere daran zu erkennen, was Funktion, Prozedur... ist - und auch mit dem Übersetzen von 'this'...
Hier die C# class:

Code:
public class Cell {
  protected Cell right;
  protected Cell left;

  protected int number;

  public int number {
    get { return this.number; }
    set { this.number = value; }
  }

  public Cell right {
    get { return this.right; }
    set { this.right = value; }
  }

  public Cell left {
    get { return this.left; }
    set { this.left = value; }
  }

  public Cell() : this(-1, null) { }

  public Cell(int number) : this (number, null) { }
}
Kann mir jemand von Euch bitte weiterhelfen, wie ich diese Klasse in Delphi umsetzen kann?

MfG, Elicia

Phoenix 7. Feb 2007 09:13

Re: C# class in Delphi Win32 class 'übersetzen'
 
Hi.

This = self, also die aktuelle instanz dieses Objektes.

Code:
  public int number {
    get { return this.number; }
    set { this.number = value; }
  }
Das ist ein Property ;-)
also sowas wie
Delphi-Quellcode:
  private
    _number: integer;
   
    function getNumer: intger;
    procedure setNumber(value: integer);

  public
    property Number:integer read getNumber write setNumber;

   ...

  function Cell.getNumber: integer;
  begin
    result := _number;
  end;

  procedure Cell.setNumber(value: integer)
  begin
    _number := value;
  end;
Analog gilt das für alles was get {...} und set {...} hat.

Code:
  public Cell() : this(-1, null) { }

  public Cell(int number) : this (number, null) { }
}
Das sind zwei Constructoren.
Der erste nimmt keinen Parameter an, und ruft einen anderen Constructor mit -1 und null auf. Der zweite nimmt eben einen Integer an und ruft einen anderen Constructor mit eben dieser Zahl und null auf und der Constructor der beide Parameter annimmt ist in Deinem Code nicht drin :)

leddl 7. Feb 2007 09:20

Re: C# class in Delphi Win32 class 'übersetzen'
 
Um deine Problem mit Funktionen und Prozeduren zu lösen:
In C# wird der Rückgabetyp vor dem Methodennamen genannt. Steht hier also zB int, hast du eine Funktion vorliegen, die einen Integer zurückgibt.
So sieht eine Methode in C# aus:
Code:
<Sichtbarkeitsparameter> <Rückgabewert> <Methodenname> (<Parameter>){

}
Um den Rest (und damit das eigentliche Problem ;)) hat sich Phoenix ja schon gekümmert ;)

mkinzler 7. Feb 2007 09:22

Re: C# class in Delphi Win32 class 'übersetzen'
 
Delphi-Quellcode:
Cell = class;

Cell = class
  protected
    Fright, Fleft; cell;
    Fnumber: Integer;
  public
    constructor Create;
    constructor Create( nr: integer; zelle: Cell);
  published
    property number: Integer read FNumber write Fnumber;
    property left: Cell read FLeft write FLeft;
    property right: Cell read FRight write FRight;
end;

constructor Cell.Create;
begin
  FNumber = -1;
end;

constructor Cell.Create( nr: integer);
begin
  FNumber := Nr;
end;

Elicia 7. Feb 2007 09:43

Re: C# class in Delphi Win32 class 'übersetzen'
 
Hallo,

danke Euch allen herzlich für die schnellen Antworten :-D - helfen mir wirklich sehr!

MfG, Elicia

Jelly 7. Feb 2007 10:56

Re: C# class in Delphi Win32 class 'übersetzen'
 
Sakura hat hier einen Webservice Client vorgestellt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz