comment rendre le type de chaîne nullable
Je veux faire le prénom de la personne en option. J'ai été en utilisant C#.net première approche de code. Pour le type de données integer il est facile juste à l'aide de "?" opérateur de faire en nullable. Je suis à la recherche d'un moyen de faire ma piqûre variable nullable. J'ai essayé de chercher mais impossible de trouver le moyen de faire accepter les valeurs null.
Ci-dessous mon code. Merci de me suggérer comment le faire accepter les valeurs null.
public class ChildrenInfo
{
[Key]
public int ChidrenID { get; set; }
[Required]
[Display(Name ="First Name")]
[StringLength(50,ErrorMessage ="First Name cannot exceed more than 50 characters")]
[RegularExpression(@"^[A-Z]+[a-z]*$",ErrorMessage ="Name cannot have special character,numbers or space")]
[Column("FName")]
public string CFName { get; set; }
[Display(Name ="Middle Name")]
[RegularExpression(@"^[A-Z]+[a-z]*$",ErrorMessage ="Middle Name cannot have special character,numbers or space")]
[StringLength(35,ErrorMessage ="Middle Name cannot have more than 35 characters")]
[Column("MName")]
public string? CMName { get; set; }
}
source d'informationauteur Sabin Kumar Sharma | 2015-09-29
Vous devez vous connecter pour publier un commentaire.
String est un type de référence et de toujours accepter les valeurs null, vous n'avez pas besoin de faire quelque chose de spécial. En précisant qu'un type est nullable est nécessaire uniquement pour les types de valeur.
Les chaînes de caractères sont les valeurs null en C# de toute façon parce qu'ils sont des types référence. Vous pouvez simplement utiliser
public string CMName { get; set; }
et vous serez en mesure de le mettre à null.Système.String est un type de référence de sorte que vous n'avez pas besoin de faire quoi que ce soit comme
Il a déjà une valeur nulle (null référence):
Il n'est pas possible de faire référence types Nullables. Seuls les types de valeur peut être utilisé dans une structure Nullable. En ajoutant un point d'interrogation à un type de valeur de nom rend nullable. Ces deux lignes sont les mêmes:
string
type est un type de référence, il est donc prendre la valeur null par défaut. Vous ne pouvez utiliserNullable<T>
avec des types valeur.Ce qui signifie que quel que soit le type, est remplacé par le paramètre générique, il doit être d'un type valeur.
Comme d'autres l'ont souligné, la chaîne est toujours d'accepter les valeurs null en C#. Je soupçonne que vous êtes vous poser la question parce que vous n'êtes pas en mesure de quitter le milieu nom que la valeur null ou vide?
Je soupçonne que le problème est avec votre attributs de validation, le plus probable de la RegEx. Je ne suis pas en mesure de pleinement analyser les RegEx dans ma tête mais je pense votre RegEx insiste sur le premier caractère. J'ai peut-être tort - RegEx est dur. Dans tous les cas, essayez de commenter vos attributs de validation et de voir si cela fonctionne, puis ajoutez-les à nouveau dans un à la fois.
Vous n'avez pas besoin de ne rien faire, le modelbinding va passer la valeur null à une variable sans problèmes.