Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: is a 'field' but is used like a 'type'

  Alt 10. Apr 2015, 19:59
Code:
    IntPtr HTags = IntPtr.Zero; // *1

    public static extern HTags TagsLibrary_Create(); // *2
*1 deklariert eine private Variable 'HTags' vom Typ 'Integer' und weißt ihr einen Wert zu.
*2 deklariert eine statische Methode 'TagsLibrary_Create()' mit dem Rückgabetype... 'HTags'.

Nun ist 'HTags' eine private Variable, wird aber dort verwendet, wo eigentlich ein Typ stehen soll.

In Delphi wäre das z.B.

Delphi-Quellcode:
Var
  HTags : PInteger = Nil;

Function TagsLibrary_Create() : HTags;
Das ergibt doch keinen Sinn.

Was Du willst (TypeDef) lässt sich in C# nicht machen. Du kannst am Anfang der Datei zwar 'using HTags = IntPtr;' schreiben, aber das gilt nur für die Datei. Wäre 'IntPtr' eine Klasse, könntest Du 'class HTags : IntPtr{}' verwenden, aber 'IntPtr' ist ein struct (Record) und damit geht inheritance nicht.

Verwende einfach IntPtr statt HTags.
  Mit Zitat antworten Zitat