C#可空字符串错误

private string? typeOfContract 

{

get { return (string?)ViewState["typeOfContract"]; }

set { ViewState["typeOfContract"] = value; }

}

代码后来我用这样的:C#可空字符串错误

typeOfContract = Request.QueryString["type"]; 

我收到以下错误在typeOfContract行的声明指出:

类型“字符串“必须是非空值类型,以便在通用类型或方法中使用 它作为参数'T' 'System.Nullable < T>'

任何想法?基本上,我想在执行操作之前确保"type"存在于QueryString中。

回答:

System.String是一个引用类型,它已经是“可空”的。

Nullable < T> and the?后缀是值类型,如Int32,Double,DateTime等。

回答:

您正在使其变得复杂。 string已经可以为空。您无需制作更多即可。取出物业类型上的?

回答:

字符串不能是Nullable的参数,因为字符串不是值类型。字符串是一个引用类型。

string s = null; 

是一个非常有效的声明,并且不需要使其可以为空。

private string typeOfContract 

{

get { return ViewState["typeOfContract"] as string; }

set { ViewState["typeOfContract"] = value; }

}

应该因为为关键字的工作。

回答:

字符串是一个引用类型,所以你不需要(也不能)在这里使用Nullable<T>。只需将typeOfContract声明为字符串,并在从查询字符串中获取它之后检查null。或者,如果要处理与空字符串相同的空字符串值,请使用String.IsNullOrEmpty。

回答:

对于可为空,使用?与所有的C#图元,除了字符串。

下页给出了C#原语的列表: http://msdn.microsoft.com/en-us/library/aa711900(v=vs.71).aspx

以上是 C#可空字符串错误 的全部内容, 来源链接: utcz.com/qa/257463.html

回到顶部