Why do I get Error \"The type \'string\' must be a non-nullable value type in order to use it as parameter \'T\' in the generic type or method \'System.Nullable\'\"?
Use string instead of string? in all places in your code.
The Nullable type requires that T is a non-nullable value type, for example int or DateTime. Reference types like string can already be null. There would be no point in allowing things like Nullable so it is disallowed.
Also if you are using C# 3.0 or later you can simplify your code by using auto-implemented properties:
public class WordAndMeaning
{
public string Word { get; set; }
public string Meaning { get; set; }
}