小编典典

类型“字符串”必须是不可为空的类型,才能将其用作泛型类型或方法“System.Nullable”中的参数 T'

all

为什么我会收到错误“类型’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; }
      }
    }
}

阅读 92

收藏
2022-08-08

共1个答案

小编典典

在代码中的所有位置使用string而不是。string?

Nullable<T>类型要求 T 是不可为空的值类型,例如intor
DateTime。像这样的引用类型string已经可以为空。不允许这样的事情是没有意义的Nullable<string>

此外,如果您使用 C# 3.0 或更高版本,您可以使用自动实现的属性来简化代码:

public class WordAndMeaning
{
    public string Word { get; set; }
    public string Meaning { get; set; }
}
2022-08-08