我想让人的中间名可选.我一直在使用C#.net代码的第一种方法.对于整数数据类型,只需使用?运算符使其可以为空即可.我正在寻找一种让我的sting变量可以为空的方法.我试图搜索但找不到让它可以为空的方法.
以下是我的代码.请建议我如何让它可以为空.
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; }
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个具有泛型类型的函数TVal。我写了这一行:
var zeroBased = new TVal[size];
Run Code Online (Sandbox Code Playgroud)
然后在 Visual Studio (VS) 中,我使用 alt+enter 替换var为显式类型。这是我得到的:
TVal[]? zeroBased = new TVal[size];
Run Code Online (Sandbox Code Playgroud)
我很惊讶地发现?运算符,表明该类型可能可以为空。我认为我会足够安全,假设类型在创建时永远不会为空new,并且可以刚刚完成:
TVal[] zeroBased = new TVal[size];
Run Code Online (Sandbox Code Playgroud)
是否存在在 C# 中实例化新数组可以返回 null 的情况?
注意:代码似乎在没有 的情况下编译得很好?,我只是对 VS 的建议很感兴趣......
打开 Visual Studio,与下面指定的版本相同,创建一个新项目,根据下面的 VS 项目文件内容启用可为空类型,创建一个新类,并弹出此函数:
public void Test<T>(int size)
{
var tArr = new T[size];
}
Run Code Online (Sandbox Code Playgroud)
选择var并点击alt+enter,然后选择var用显式类型替换。如果行为与我所经历的相同,您将得到:
public void Test<T>(int size)
{
T[]? tArr = new T[size];
}
Run Code Online (Sandbox Code Playgroud)