1. ホーム
  2. c#

[解決済み] 汎用型またはメソッド 'System.Nullable<T>' のパラメータ T として使用するには、型 'string' が非 Nullable 型である必要があります。

2022-04-21 06:14:36

質問

エラー "ジェネリック型またはメソッド 'System.Nullable'" でパラメータ 'T' として使用するには、型 'string' が非 Nullable 値型でなければなりません。

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? をコード内のすべての場所で使用してください。

Nullable<T> 型では、T が NULL でない値型であることが必要で、たとえば int または DateTime . のような参照型は string はすでにnullにすることができます。のようなものを許可する意味はないでしょう。 Nullable<string> ということで、不許可とします。

また、C# 3.0以降を使用している場合、コードを簡素化するために 自動実装されたプロパティ :

public class WordAndMeaning
{
    public string Word { get; set; }
    public string Meaning { get; set; }
}