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.
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...
mmh komisch hat sich erledigt ohne eine Zeile Code zu verändern.
Microsoft !!
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.
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.
das ist mir von anfang an klar gewesen nur ich möchte gerne den einen Style beibehalten.
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen).