Laden...

Fehlermeldung bei privaten Konstruktor

Erstellt von delphiking1980 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.139 Views
Thema geschlossen
D
delphiking1980 Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren
Fehlermeldung bei privaten Konstruktor

Hallo,

ich komme eigentlich von Java und da ja Java und C# ziemlich Ähnlich sind ist es mir bisher leicht gefallen zu coden nur hier stoße ich auf meine grenzen.
Ich möchte gerne wie zu erkennen ist nur eine Instance der Klasse / des Objektes zulassen.


using System;
using System.Collections;
using System.Linq;
using System.Text;

namespace Logger
{
    /**
     * Diese Klasse dient zum Loggen der Ereignisse wenn der Serverdienst gestartet wurde.
     * **/
    class Logger
    {
        private static Logger instance;
        
        private Logger() { 
        }

        public static Logger getInstance() {
            if (instance == null)
                instance = new Logger();
            return instance;
        }
        
        public void logInfo(String infoText) {
            createLogRow("INFO "+infoText);
        }
        public void logDebug(String debugText) {
            createLogRow("DEBUG " + debugText);        
        }
        public void logError(String errText) {
            createLogRow("ERROR " + errText);
        }

        private void createLogRow(String text) {
            String logText = "[" + DateTime.Now + "] " + text;
           writeLogFile(logText);
        }

        private void writeLogFile(String text) {
            String formatDate = string.Format("{0:ddMMyyyy}", DateTime.Now);
            String filename = System.Threading.Thread.GetDomain().BaseDirectory + "vk8055_" + formatDate + ".log";
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(@filename, true))
            {
                file.WriteLine(text);
            } 
        }

    }
}


nur wenn ich das Objekt instanzieren möchte dann :


private static Logger.Logger logger = Logger.Logger.getInstance();

bekomme ich folgende Fehlermeldung :

Fehlermeldung:
Fehler 1 Für das nicht statische Feld, die Methode oder die Eigenschaft "Logger.Logger.getInstance()" ist ein Objektverweis erforderlich.

Kennt sich jemand damit aus und kann mir helfen, weiß nichtmal wonach ich googeln müsste.

916 Beiträge seit 2008
vor 12 Jahren

Hi delphiking1980,

Ich denke das liegt daran das du den Namespace genauso genannt hast wie deine Klasse und der Compiler nicht dazwischen unterscheiden kann.

Again what learned...

D
delphiking1980 Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren
sorry

mmh komisch hat sich erledigt ohne eine Zeile Code zu verändern.

Microsoft !!

Hinweis von herbivore vor 12 Jahren

Es liegt mir fern, Microsoft generell in Schutz zu nehmen, aber das Entstehen und Verschwinden von Syntaxfehlern liegt in 99,999% der Fälle am Programmierer. Also Vorsicht vor vorschnellen Schuldzuweisungen.

6.862 Beiträge seit 2003
vor 12 Jahren

ich komme eigentlich von Java

Das sieht man auch am Code. Schau dir unbedingt die Naming Guidelines für .Net an.

Baka wa shinanakya naoranai.

Mein XING Profil.

D
delphiking1980 Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren
ich weiß

das ist mir von anfang an klar gewesen nur ich möchte gerne den einen Style beibehalten.

Hinweis von herbivore vor 12 Jahren

Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen).

Thema geschlossen