![]() |
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:
funktioniert leider nicht. :(
namespace bla { const blubb = "moep"; }
Chris |
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.
|
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 ;) |
Re: Namespaceweite Konstanten
Geh doch einfach in den Namespace, der über allem steht und deklarier ne Klasse "GlobalConstants" mit einem public static string ^^
|
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? ;) |
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é |
Re: Namespaceweite Konstanten
Zitat:
Code:
const string Blubb = "moep";
|
Re: Namespaceweite Konstanten
Zitat:
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? |
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 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz