C # NULL-Zeichenfolgenfehler
private string? typeOfContract
{
get { return (string?)ViewState["typeOfContract"]; }
set { ViewState["typeOfContract"] = value; }
}
Später im code verwende ich es wie folgt:
typeOfContract = Request.QueryString["type"];
Ich erhalte die folgende Fehlermeldung bei der Erklärung der typeOfContract
Zeile, die besagt:
Den Typ "string" muss ein null-Wert geben Sie, um zu verwenden
als parameter " T " in der generischen Typ oder Methode
'System.Nullable<T>'
Irgendwelche Ideen? Grundsätzlich möchte ich sicherstellen, dass "type"
besteht in der QueryString
bevor eine Aktion ausgeführt wird.
InformationsquelleAutor der Frage Mike Fielden | 2008-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
System.String ist ein Referenztyp, und bereits "nullable".
Nullable<T> und ? suffix für Datentypen wie Int32, Double, DateTime, etc.
InformationsquelleAutor der Antwort Joe
Machen Sie es kompliziert.
string
ist schon null-Werte zu. Sie brauchen nicht, um es mehr null-Werte zu. Nehmen Sie die?
auf die Art der Immobilie.InformationsquelleAutor der Antwort jop
string kann nicht die parameter Nullable, weil die Zeichenfolge wird nicht als Wert geben. String ist ein Referenztyp.
ist eine sehr gültige Aussage und es ist nicht erforderlich, dass es null-Werte zu.
sollte funktionieren, weil der als Stichwort.
InformationsquelleAutor der Antwort Szymon Rozga
String ist eine Referenz geben, so dass Sie nicht brauchen (und können), verwenden Sie
Nullable<T>
hier. Nur erklären typeOfContract als string und prüfen Sie einfach null nachdem ich es aus dem Abfrage-string. Oder Zeichenfolge verwenden.IsNullOrEmpty wenn Sie wollen, um leere Zeichenfolge-Werte das gleiche wie null.InformationsquelleAutor der Antwort csgero
Für null-Werte zulässt, verwenden
?
mit allen C# werden primitiveaußer string.Der folgenden Seite gibt eine Liste von der C# werden primitive:
http://msdn.microsoft.com/en-us/library/aa711900(v=vs. 71).aspx
InformationsquelleAutor der Antwort James Oravec