const



  • Hallo

    Ich habe vor ein paar Wochen mit C# begonnen und habe noch ein paar Fragen.

    1. Wie kann ich einen Parameter als const deklarieren?

    2. Wie kann ich eine Methode als const deklarieren?

    Danke, gruess dath



  • Erstmal zu 2: const giebt es nicht, auch unter C++.NET nicht erlaubt.

    Zu 1: const mach ja nur bei Zeigern sinn und Zeiger giebt es ja eigentlich unter C# nicht mehr.



  • const macht genauso auch bei Referenzen Sinn.

    Aber Java hat ja kein const ... 😉



  • @Bashar: Dann muss man halt wie unter Java auch anders herum rangehen. D.H eine Kopie des Objektes übergeben, wenn man nicht möchte das ein Objekt verändert werden soll. Problem hierbei ist halt nur, wie ist die Copy-Methode überschrieben?



  • Generell Objekte zu kopieren ist sicherlich nicht sinnvoll, bei einigen Klassen sogar unmöglich.



  • @dath.1:

    const string Name = "Dath";
    Console.WriteLine(Name);
    

    Hier wird eine Variable Name vom Typ string definiert, aber zusätzlich mit dem Schlüsselwort const versehen. Dadurch kann der Wert von Name im Lauf des Programms nicht mehr verändert werden, sondern Name stellt eine Konstante dar.

    MfG DavidK



  • @DavidK:

    Der Wert einer Konstanten muss ihr gleich bei der Deklaration übergeben werden, da man später nicht mehr schreibend auf die Konstante zugreifen kann.

    *gg*

    MfG DavidK



  • sicher gibts const!! 😮
    public final methode();

    final int i = 0;



  • was ist mit

    public void methode(final Object o) { ... }
    

    geht sowas in der Art?



  • final ist java. const ist c#

    sicher kannst du methoden als const deklarieren, nur können diese danach nicht redefiniert (override) werden.

    @bashar ja das geht auch



  • wenn const in c# dasselbe ist wie final in Java, isses nicht dasselbe wie const in C++ 😉



  • bin mir nicht sicher, gibt es nicht readonly oder so in C#? Bin mir sicher das mal gelesen zu haben

    [ Dieser Beitrag wurde am 20.03.2003 um 18:34 Uhr von kingruedi editiert. ]



  • Danke für die Antworten.

    Ich habe mich noch weiter erkundigt und erfahren, dass es wirklich keine
    const-Mitgliedsfunktionen und -Parameter gibt.



  • Original erstellt von kingruedi:
    bin mir nicht sicher, gibt es nicht readonly oder so in C#? Bin mir sicher das mal gelesen zu haben

    Ne, das war nicht C#... Ein readonly und writeonly war AFAIK ursprünglich mal für C++ vorgesehen aber dann kam doch const



  • Leute, entweder es giebt zwei verschiedene Sprachen von C#? Oder ihr, bzw ich, müßen C# lernen.

    <C# profi> schreibt:
    sicher kannst du methoden als const deklarieren, nur können diese danach nicht redefiniert (override) werden.

    Schwachsinn, virtuale Methoden werden mit sealed geschlossen.

    MaSTaH schreibt:
    Ne, das war nicht C#... Ein readonly und writeonly war AFAIK ursprünglich mal für C++ vorgesehen aber dann kam doch const

    Und es giebt doch readonly. :p
    Kurz:
    Der Unterschied zwischen const und readonly ist:
    Bei const muß sofort ein Wert übergeben werden, auch bei einer Member-Variable.
    "readonly" darf nur bei Member-Variablen benutzt werden. Hier kann dann im Konstruktor ein Wert übergeben werden.

    Kleiner Tip: erst Nachdenken oder Nachschauen, dann Posten.
    Auch ich mach Fehler, aber soviel Haß auf .NET|C# und Schwachsinn Posts wie hier hab ich noch nirgends gelesen (gesehen).


Anmelden zum Antworten