C# ... include ?

Hallo,

wie kann ich denn in C# eine einfache Code-Datei (.cs) in eine andere einbinden? Ist das garnicht möglich?

Geht das nur wenn ich die andere Datei bereits compiliert habe und die dann per „using“ als Namespace einbinde?

Da muss es doch noch irgendeine andere Lösung geben oder?

Vielen Dank für eine Antwort.
Alex

wir wäre keine include Anweisung in c# bekannt, aber ich hab bis jetzt auch noch nie eine gebraucht.
du musst die Klassen vorher nicht compilieren, sonst wärs ja wirklich umständlich.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

wir wäre keine include Anweisung in c# bekannt, aber ich hab
bis jetzt auch noch nie eine gebraucht.
du musst die Klassen vorher nicht compilieren, sonst wärs ja
wirklich umständlich.

Hmmm… ist mein Vorhaben so selten?
Ich habe eine Klasse z.B. „Tier“ in einer Datei z.B. „tiere.cs“
Und nun habe ich eine weitere Datei „hund.cs“. In diese möchte ich die Datei „tiere.cs“ einbinden (includen, importieren, … wie es auch immer heißt), da ich eine weitere Klasse erstellen möchte z.B. „Hund“ die von der Klasse „Tier“ abgeleitet ist.

Wie geht denn das?

Hi

Hmmm… ist mein Vorhaben so selten?

Nee :smile:

Ich habe eine Klasse z.B. „Tier“ in einer Datei z.B.
„tiere.cs“

Und nun habe ich eine weitere Datei „hund.cs“. In diese möchte
ich die Datei „tiere.cs“ einbinden (includen, importieren, …
wie es auch immer heißt), da ich eine weitere Klasse erstellen
möchte z.B. „Hund“ die von der Klasse „Tier“ abgeleitet ist.

das includen a la c gibts in .net nicht. aber du kannst einfach darauf zugreiffen…

z.b. so:

public class Hund : Tier {}

sollte Tier in einem anderen Namespace liegen kannst du mit den namespace darauf zugreifen oder via using:

public class Hund : MyNamespace.Tier {}

oder

using MyNamespace;
public class Hund : Tier {}

alles unklar?
gruss
giuseppe

http://devblog.gsharp.ch

Leider ist es noch etwas unklar…
ich hab gerade keine Möglichkeit es zu testen, aber ich kann mir nicht vorstellen dass es so geht…

die Klasse „Tier“ ist doch in einer anderen Datei … und da kann ich dann mit

using MyNamespace;
public class Hund : Tier {}

einfach darauf zugreifen? ohne irgendwie dem „Programm“ zu sagen wo er die Klasse findet? Oder muss ich dann meine Datei „tier.cs“ mit dem Namespace „MyNamespace“ irgendwo speziell ablegen?

Vielen Dank
Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

du musst beim compilieren natürlich beide Dateine angeben:
csc Hund.cs Tier.cs

du musst beim compilieren natürlich beide Dateine angeben:
csc Hund.cs Tier.cs

schön, aber wer kompiliert schon via csc.exe? :wink:

Leider ist es noch etwas unklar…
ich hab gerade keine Möglichkeit es zu testen, aber ich kann
mir nicht vorstellen dass es so geht…

die Klasse „Tier“ ist doch in einer anderen Datei … und da
kann ich dann mit

using MyNamespace;
public class Hund : Tier {}

jetzt verstehe ich dich :smile:

im .NET arbeitet man nicht mit einzelen files und included dann diese nach lust und laune.

das obrige beispiel funktioniert natürlich nur wenn du dich im gleichen projekt befindest, oder ein anderes projekt (oder dll) referenzierst.

Gruss
Giuseppe

du musst beim compilieren natürlich beide Dateine angeben:
csc Hund.cs Tier.cs

schön, aber wer kompiliert schon via csc.exe? :wink:

ich!

echt? und wieso?

gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

so eine Entwicklungsumgebung ist mir einfach zu umständlich(vor allem vs).
Das Fenster mit wo der code steht wird immer kleiner und kleiner, dafür popen immer andere Fenster auf.
Ich verwende lieber einen Texteditor und ruf den Compiler über die Komandozeile auf.

und wie debuggst du? wie willst du grosse projekte mit 500 Files so im auge behalten?

gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

und wie debuggst du?

in dem ich den Debugger starte

wie willst du grosse projekte mit 500
Files so im auge behalten?

wieso sollte es so nicht gehen. Du wirst ja wohl kaum alle 500 Dateien gleichzeitig brauchen.

lg

georg

wie willst du grosse projekte mit 500
Files so im auge behalten?

wieso sollte es so nicht gehen. Du wirst ja wohl kaum alle 500
Dateien gleichzeitig brauchen.

mein vorletztes projekt bestand aus über 50 c#-Projekte mit über 2000 Dateien.

dies wäre ohne visual studio gar nicht denkbar…

gruss
giusppe

Ahaa… also die Datei mit kompilieren und dann gehts… sehr gut…
Nur noch eine Frage / ein Problem.
Die .cs-Datei die ich habe ist eine CodeBehind-Datei für eine .aspx-Datei. und diese .cs-Datei soll eben eine Klasse aus einer anderen .cs-Datei „holen“.
Wenn die ASPX seite das erste Mal aufgerufen wird, wird die doch kompiliert und dann temporär kompiliert gespeichert für einige Zeit (bis sich irgendetwas ändert?) … und wie geb ich dem ganzen jetzt zu verstehehn, dass der die andere .cs-Datei mit kompilieren soll mit der benötigten Klasse?

Hi

Ahaa… also die Datei mit kompilieren und dann gehts… sehr
gut…
Nur noch eine Frage / ein Problem.
Die .cs-Datei die ich habe ist eine CodeBehind-Datei für eine
.aspx-Datei. und diese .cs-Datei soll eben eine Klasse aus
einer anderen .cs-Datei „holen“.

Du hast dich von Mars etwas irritieren lassen. Einzelne Dateien sind keine Libraries die man mal im Projekt XY und ein anderes mal im Projekt YZ verwendet.
Wenn Du gemeinsam genutzten Code hast, so sollte man dies in ein einzelnes Projekt haben und dann die Assembly verweisen.

Wenn die ASPX seite das erste Mal aufgerufen wird, wird die
doch kompiliert und dann temporär kompiliert gespeichert für
einige Zeit (bis sich irgendetwas ändert?) … und wie geb ich
dem ganzen jetzt zu verstehehn, dass der die andere .cs-Datei
mit kompilieren soll mit der benötigten Klasse?

Nein. Das Assembly ist bereits kompiliert. Wie schon gesagt, man arbeitet nicht mit einzelnen cs Dateien.

gruss

Jaa… hmm … Ja… Nein … … *denk*

Hat jemand ein konkretes Beispiel wie ich das nun in ASP.NET mit C# mache? Irgendwie ein Projekt, oder sonstiges anlegen?
Ich nehme kein Visual Studio .net … eigentlich. Eben einfach nur ein „Web“ mit ASP.Net-Komponenten auf nem IIS6-Win2003-Server.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]