Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   C# Namespaceweite Konstanten (https://www.delphipraxis.net/52359-namespaceweite-konstanten.html)

CalganX 28. Aug 2005 22:11


Namespaceweite Konstanten
 
Hi,
gibt es in C# eine Möglichkeit Konstanten zu definieren, die im ganzen Namespace ihre Gültigkeit haben?
Die einfache Variante
Code:
namespace bla { const blubb = "moep"; }
funktioniert leider nicht. :(

Chris

Dax 28. Aug 2005 22:20

Re: Namespaceweite Konstanten
 
Das wäre nicht rein OOP ;-) Also nicht möglich. C#2 untersützt aber namespaceloses Zeug, also namespace {} (mehr code) (glaub ich wars), aber das is imho auch nicht das wahre.

CalganX 28. Aug 2005 22:26

Re: Namespaceweite Konstanten
 
Hi,
wie soll ich dann Strings, die ich mehrmals verwende speichern?
In diesem Fall ist jetzt zum Beispiel das Standard-XML-Konstrukt, das erzeugt werden soll, wenn meine XML-Datei vom Programm erzeugt wird. Das ist ein String, der in jeder Klasse, die ich verwende gleich sein muss. Ansonsten knallt's.

Sag mir jetzt nicht, dass es das Wahre ist, wenn ich jetzt diesen String in jeder Klasse hardcode... :shock:

Chris

PS: Es ist btw C#2 ;)

Dax 28. Aug 2005 22:28

Re: Namespaceweite Konstanten
 
Geh doch einfach in den Namespace, der über allem steht und deklarier ne Klasse "GlobalConstants" mit einem public static string ^^

Robert_G 28. Aug 2005 22:30

Re: Namespaceweite Konstanten
 
In einem namespace können in .net nur typen definiert werden.
Also Klassen, structs, delegates und enums.
Du könntest die Konstante also an die Klasse hängen, mit der sie benutzt wird.
Aber wann braucht man schon öffentliche string Konstanten? ;)

MagicAndre1981 28. Aug 2005 22:30

Re: Namespaceweite Konstanten
 
Dann erstell dir doch eine Singleton-Klasse, die beim Programmstart die Einstellungen in eine NamedValueCollection lädt. Dann überlade den []-Operator und somit kommst du an die Werte ran. Das wars ;-)

André

Speedmaster 28. Aug 2005 22:55

Re: Namespaceweite Konstanten
 
Zitat:

Zitat von Chakotay1308
Hi,
gibt es in C# eine Möglichkeit Konstanten zu definieren, die im ganzen Namespace ihre Gültigkeit haben?
Die einfache Variante
Code:
namespace bla { const blubb = "moep"; }
funktioniert leider nicht. :(

Chris

Müsste eigentlich funktionieren, allerdings so:
Code:
const string Blubb = "moep";

Robert_G 28. Aug 2005 23:09

Re: Namespaceweite Konstanten
 
Zitat:

Zitat von Speedmaster
Müsste eigentlich funktionieren, allerdings so:
Code:
const string Blubb = "moep";

Nope, keine globalen Konstanteb in .Net.
Aber nochmal: Brauchst du wirklich eine öffentliche string-Konstante?
Reicht es nicht sie als private const in deiner Basisklasse zu definieren? Müssen die Ableitungen denn wirklich den Inhalt wissen?

CalganX 29. Aug 2005 14:59

Re: Namespaceweite Konstanten
 
Hi,
eigentlich war es so, dass es mehrere Klassen gab, die voneinander unabhängig wären und dann den gleichen String verwenden würden, aber ich habe gerade entschieden, dass es da noch eine wesentlich elegantere Lösung über Klassen gibt, als dass mehrmals den Source zu wiederholen. :zwinker:

Aber gut, da ich nun weiß, dass es keine Klassenunabhängigen und Namespaceweiten Konstanten gibt, ist die Frage geklärt. ;)

Danke,
Chris


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