类型 'string' 必须是不可为 null 的值类型,才能将其用作泛型类型或方法'System.Nullable<T>'中的参数'T'


public virtual int Fill(DataSetservices.Jobs_detailsDataTable dataTable, 
    global::System.Nullable<global::System.String> fromdate,     
    global::System.Nullable<global::System.DateTime> todate)

我用 C# 用 dataset.xsd 编写了上面的代码,但它抛出了一个错误:

错误 1
类型"字符串"必须按顺序为不可为空的值类型 将其用作泛型类型或方法中的参数"T" "系统.可为空"

建议我如何使用字符串,因为我想使用字符串而没有别的

string已经可以为空,因为它是引用类型。 您无需将其包装在 Nullable 中即可获得 null 值。 不仅不需要它,而且根据您收到的错误消息,这甚至是不可能的。 只有不可为空的值类型可以用作 Nullable 的泛型参数。

字符串类是一个类,它不像System.Int32或其他基元类型那样struct。它可以保存空值。 Nullable<T>适用于值类型。

从名称来看,您似乎要存储DateTime对象。最好DateTime有自己的类型,即。 DateTime ,对于可为空,您可以使用Nullable<DateTime>DateTime?

如果您查看 MSDN 上有关 Nullable或者将任何引用类型作为泛型参数。

最新更新