public string getTime()
{
StringBuilder RetString = new StringBuilder();
RetString.Append(Hours.ToString().PadLeft(2, '0') + "-" + Min.ToString().PadLeft(2, '0') + "-" + AMPM.PadLeft(2, '0'));
return RetString.ToString();
}
Ich versuche, eine Zeit (im String-Format) zurück zu einer Form Zeichenfolge Variable mit dieser. Ich habe den Benutzer eingerichtet, um eine Zeit einzugeben, und die Zeit wird in dieser Klasse gespeichert, und alles, was ich jetzt mache, bringt diese Daten zum Formular, in dem ich arbeite. Ich habe überprüft, dass die Daten in die Klasse gehen und dort gespeichert werden die Variablen.Verwendung von stringbuilder put Zeit in Zeichenfolge (Klasse) C#
Der Fehler, den ich bekommen ist:
Nicht wirklich sicher, was das Problem ist. Ich habe die Variablen natürlich erklärt
private int Hours;
private int Min;
private string AMPM;
Ich habe Sets Setup erhalten:
public int _hours
{
get
{
return Hours;
}
set
{
if (value <= 12 && value >= 1)
{
Hours = value;
}
else
Hours = 0;
}
}
public int _min
{
get
{
return Min;
}
set
{
if (value <= 59 && value >= 1)
{
Min = value;
}
else
Min = 0;
}
}
public string ampm
{
get
{
return AMPM;
}
set
{
if (AMPM == "AM" || AMPM == "PM")
{
AMPM = value;
}
else
AMPM = "";
}
}
und mein Aufruf der Klasse:
string timefromclass;
timefromclass = timec.getTime();
Das einzige, was ich denke, es könnte wäre mein Anruf in der Klasse, wo ich die Zeit speichern würde
C_Time time = new C_Time();
aber in der anderen Form habe ich auch eine andere eingerichtet.
C_Time timec = new C_Time();
Möglicherweise versuche ich die Zeit aus einer leeren Instanz abrufen?
EDIT:
public void setTime(int hours, int min, string aMPM)
{
Hours = hours;
Min = min;
AMPM = aMPM;
Das ist wirklich der einzige Ort, wo ich diese Variable etwas zugewiesen.
Wenn Sie die NULL-Referenzausnahme in Visual Studio betrachten, sollten Sie in der Lage sein, das tatsächliche Objekt zu isolieren, das null ist. Das würde Sie in die richtige Richtung weisen. Wie andere wahrscheinlich AMPM gesagt haben. –
Klicken Sie in diesem Fehler auf den Link "Details anzeigen". Irgendwo dort kann es dir genau sagen, mit welcher Variable es ein Problem hat. –
nur eine Randnotiz - Ihr Gehäuse ist etwas aus, basierend auf Standard-C# Konventionen. Öffentliche Methoden und Eigenschaften sollten "PascalCase" sein, während private Mitglieder "camelCase" sein sollten. Die Verwendung von Unterstrichpräfixen gilt normalerweise für private Variablen, Sie verwenden sie jedoch für öffentliche Eigenschaften. –