private string? typeOfContract
{
get { return (string?)ViewState["typeOfContract"]; }
set { ViewState["typeOfContract"] = value; }
}
Plus tard dans le code, je l'utilise comme ceci:
typeOfContract = Request.QueryString["type"];
J'obtiens l'erreur suivante à la déclaration de typeOfContract
ligne indiquant:
Le type 'string' doit être un type valeur non Nullable pour pouvoir l'utiliser comme paramètre 'T' dans le type ou la méthode générique 'System.Nullable <T>'
Des idées? En gros, je veux m'assurer que cela "type"
existe dans le QueryString
avant d'effectuer une action.
string?
pour dire au monde que cette chaîne peut être nulle. Réf: youtube.com/watch?v=VdC0aoa7ungVous compliquez les choses.
string
est déjà nullable. Vous n'avez pas besoin de le rendre plus nullable. Sortez le?
sur le type de propriété.la source
string ne peut pas être le paramètre Nullable car string n'est pas un type valeur. String est un type de référence.
est une instruction très valide et il n'est pas nécessaire de la rendre nullable.
devrait fonctionner à cause du mot-clé as .
la source
String est un type de référence, vous n'avez donc pas besoin (et ne pouvez pas) l'utiliser
Nullable<T>
ici. Déclarez simplement typeOfContract en tant que chaîne et vérifiez simplement la valeur null après l'avoir obtenue à partir de la chaîne de requête. Ou utilisez String.IsNullOrEmpty si vous souhaitez gérer des valeurs de chaîne vides identiques à null.la source
Pour nullable, utilisez
?
avec toutes les primitives C # , à l'exception de string.La page suivante donne une liste des primitives C # : http://msdn.microsoft.com/en-us/library/aa711900(v=vs.71).aspx
la source
Veuillez noter que dans la prochaine version de C # qui est 8, les réponses ne sont pas vraies.
All the reference types are non-nullable by default
et vous pouvez réellement faire ce qui suit:cependant,
L'important ici est de montrer l'intention de votre code. Si l '"intention" est que le type de référence peut être nul, marquez-le de manière à ce que sinon, attribuer une valeur nulle à non nullable entraînerait un avertissement du compilateur.
Plus d'informations
Pour le modérateur qui supprime toutes les réponses, ne le faites pas. Je crois fermement que cette réponse ajoute de la valeur et que la suppression empêcherait simplement quelqu'un de savoir ce qui est juste à ce moment-là. Puisque vous avez supprimé toutes les réponses, je publie à nouveau la réponse ici. Le lien qui a été envoyé concernant les "doublons" est simplement une ouverture de certaines personnes et je ne pense pas que ce soit une recommandation officielle.
la source