Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C#] Klassen in anderen Dateien benutzen (https://www.delphipraxis.net/42977-%5Bc-%5D-klassen-anderen-dateien-benutzen.html)

thepaul 26. Mär 2005 21:58


[C#] Klassen in anderen Dateien benutzen
 
Hi,

Ich schriebe immer eine KLasse in eine extra Datei. Wenn ich die KLassen dann aus einer andreren Datei verwenden will muss sie im gleichen Ordner liegen. Tut sie dasnicht wird Sie nicht erkannt. Wo schreibe ich Verweise auf solche Dateien (Klassen) hin?

MfG ThePauL

MathiasSimmack 26. Mär 2005 22:00

Re: [C#] Klassen in anderen Dateien benutzen
 
Wenn die Datei zum gleichen Projekt gehört, dann spielt das (zumindest bei SharpDevelop) keine Rolle. Ich habe auch diverse Klassen in unterschiedlichen Ordnern, aber als Referenz (wenn du so willst) reicht notfalls die Angabe
Code:
using DeinNamespaceName;
falls die Klasse einen eigenen Namespace hat.

thepaul 26. Mär 2005 22:04

Re: [C#] Klassen in anderen Dateien benutzen
 
ja, mit #develop is das klar.

ich wollt das jetzt nut mal ganz allgemein ohne irgendwelche projekte wissen. ich hab mir das ca. so vorgestellt:
Code:
using [PFAD]\[NAMESPACE]
edit: außerdem: wenn in projekten geht muss es doch auch irgendo stehn :gruebel:

Robert_G 26. Mär 2005 22:08

Re: [C#] Klassen in anderen Dateien benutzen
 
Zitat:

Zitat von thepaul
ja, mit #develop is das klar.

ich wollt das jetzt nut mal ganz allgemein ohne irgendwelche projekte wissen. ich hab mir das ca. so vorgestellt:
Code:
using [PFAD]\[NAMESPACE]

Das ist Käse. ;)
Du legst in deinem Projekt Referenzen auf andere Bibliotheken fest.
Sämtliche Klassen (und dadurch auch namespaces) sind dadurch dem Compiler bekannt.
Wenn du eine Datei aus einem anderen Verzeichnis hinzufügst, kannst du sie ganz normal verwenden. (namespace.Klasse)
Ordner und Dateinamen interessieren dich mit C# zum Glück überhaupt nicht mehr. ;)

MathiasSimmack 26. Mär 2005 22:12

Re: [C#] Klassen in anderen Dateien benutzen
 
Ich bin zwar noch nicht so tief in die C#-Materie eingestiegen, aber
Code:
using Pfad\Namespace
gibt es IMHO nicht. Der Namespace definiert doch an sich schon den Pfad, um es mal grob zu sagen. Du kannst in deinem Namespace weitere Namespaces anlegen, womit du dann auf solche Sachen wie
Code:
using Parent.Child1.Child2;
kommst, usw.

Aber was die Dateien angeht: Dort stehen Pfad und Name in der Projektdatei, und sie werden an den C#-Compiler übergeben, der alle Dateien in das Endergebnis (Exe, DLL) umwandelt. Da er die Pfade bekommt, kann er alle Dateien laden.

Hast du mal dein Beispiel parat, das bei dir nicht klappt? Ich tippe nämlich auf einen kleinen Schusselfehler (vertippt, o.ä.). ;)



Edit: Der Robert wieder. :) Na ja.

thepaul 26. Mär 2005 22:15

Re: [C#] Klassen in anderen Dateien benutzen
 
Zitat:

Zitat von Robert_G
Das ist Käse. ;)
Du legst in deinem Projekt Referenzen auf andere Bibliotheken fest.
Sämtliche Klassen (und dadurch auch namespaces) sind dadurch dem Compiler bekannt.
Wenn du eine Datei aus einem anderen Verzeichnis hinzufügst, kannst du sie ganz normal verwenden. (namespace.Klasse)
Ordner und Dateinamen interessieren dich mit C# zum Glück überhaupt nicht mehr. ;)

OK das hab ich jetzt in #develop gefunden.
Aber das geht doch dann nur mit Projekten oder ich müsste eigene Referenzen anlegen (wie immer das auch gehen mag ;))

MathiasSimmack 26. Mär 2005 22:18

Re: [C#] Klassen in anderen Dateien benutzen
 
Den Knoten "Referenzen" brauchst du nur, wenn du externe Assemblies linkst. Sagen wir als Beispiel: Du schreibst eine Klasse für was auch immer und lagerst die in eine separate Assembly aus. Damit der User damit aber was anfangen kann, schreibst du die Benutzeroberfläche als Programm. Und damit deinem Programm deine Klasse bekannt ist, gibst du die Assembly als Referenz an. Dann ggf. den Namespace-Namen der Assembly angeben,
Code:
using DeinKlassenNamespace;
und schon kann´s losgehen. ;)

thepaul 26. Mär 2005 22:28

Re: [C#] Klassen in anderen Dateien benutzen
 
OK alles klar.

Danke :love: :cheers: :dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 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