Der Typ 'string' muss ein nicht nullbarer Typ sein, um ihn als Parameter T im generischen Typ oder der Methode 'System.Nullable & lt; T & gt;' zu verwenden.
Warum erhalte ich die Fehlermeldung "Der Typ" string "muss ein null-Wert geben, um es zu verwenden als parameter" T "in der generischen Typ oder Methode" System.Nullable'"?
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using Universe;
namespace Universe
{
public class clsdictionary
{
private string? m_Word = "";
private string? m_Meaning = "";
string? Word {
get { return m_Word; }
set { m_Word = value; }
}
string? Meaning {
get { return m_Meaning; }
set { m_Meaning = value; }
}
}
}
InformationsquelleAutor der Frage MiscellaneousUser | 2012-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
string
stattstring?
in allen stellen in Ihrem code.Den
Nullable<T>
- Typ erfordert, dass T ein null-Wert geben, zum Beispielint
oderDateTime
. Referenz-Typen wiestring
können bereits null sein. Es würde keinen Punkt in so dass Dinge wieNullable<string>
es ist also nicht zulässig.Auch wenn Sie mit C# 3.0 oder höher können Sie den code vereinfachen, indem Sie mit automatisch implementierte Eigenschaften:
InformationsquelleAutor der Antwort Mark Byers
string
ist ein Referenz-Typ, eine Klasse. Sie können nurNullable<T>
oder dieT?
C# syntaktischen Zucker mit null-Wert Typen wieint
undGuid
.Insbesondere als
string
ist ein Referenz-Typ, ein Ausdruck vom Typstring
können bereits null sein:InformationsquelleAutor der Antwort Jon Skeet
System.String ist bereits nullable : Sie brauchen nicht zu erklären, es als solches (string? myStr) ist falsch.
InformationsquelleAutor der Antwort Chagbert
Einen ganz bestimmten Grund Geben
Nullable<int>
setzen Sie den cursor auf null-Werte zulässt und hit F12 - Die Metadaten der Gründe (Hinweis: die struct-Einschränkung):http://msdn.microsoft.com/en-us/library/d5x73970.aspx
InformationsquelleAutor der Antwort Joshua Enfield