propiedad operator has c# nullable

operator - string null c#



El tipo ''cadena'' debe ser un tipo no anulable para usarlo como parámetro T en el tipo genérico o método ''System.Nullable<T>'' (4)

Por una razón muy específica, escriba Nullable<int> coloque el cursor sobre Nullable y presione F12 - La metadata proporciona la razón (Observe la restricción struct):

public struct Nullable<T> where T : struct { ... }

http://msdn.microsoft.com/en-us/library/d5x73970.aspx

¿Por qué aparece el error "El tipo ''cadena'' debe ser un tipo de valor que no admite nulos para usarlo como parámetro ''T'' en el tipo genérico o método ''System.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; } } } }


System.String ya puede contener nulos: no es necesario que lo declare como tal (string? MyStr) es incorrecto.


Use string lugar de string? en todos los lugares en tu código.

El tipo Nullable<T> requiere que T sea un tipo de valor que no Nullable<T> , por ejemplo int o DateTime . Los tipos de referencia como string ya pueden ser nulos. No tendría sentido permitir cosas como Nullable<string> por lo que no está permitido.

Además, si usa C # 3.0 o posterior, puede simplificar su código mediante el uso de propiedades implementadas automáticamente :

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


string es un tipo de referencia, una clase. Solo puedes usar Nullable<T> o el T? Azúcar sintáctico C # con tipos de valor que no admiten nulos, como int y Guid .

En particular, como una string es un tipo de referencia, una expresión de tipo string ya puede ser nula:

string lookMaNoText = null;