为什么我会收到错误“类型’string’必须是不可为空的值类型才能将其用作泛型类型或方法’System.Nullable’中的参数’T’”?
using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using Universe; namespace Universe { public class clsdictionary { private string? m_Word = ""; private string? m_Meaning = ""; string? Word { get { return m_Word; } set { m_Word = value; } } string? Meaning { get { return m_Meaning; } set { m_Meaning = value; } } } }
在代码中的所有位置使用string而不是。string?
string
string?
该Nullable<T>类型要求 T 是不可为空的值类型,例如intor DateTime。像这样的引用类型string已经可以为空。不允许这样的事情是没有意义的Nullable<string>。
Nullable<T>
int
DateTime
Nullable<string>
此外,如果您使用 C# 3.0 或更高版本,您可以使用自动实现的属性来简化代码:
public class WordAndMeaning { public string Word { get; set; } public string Meaning { get; set; } }