Cómo puedo escribir un método genérico que puede tomar un objeto Nullable para usar como método de extensión. Quiero agregar un elemento XElement a un elemento primario, pero solo si el valor que se va a usar no es nulo.Nullable <T> para el método genérico en C#?
p. Ej.
public static XElement AddOptionalElement<T>(this XElement parentElement, string childname, T childValue){
...
code to check if value is null
add element to parent here if not null
...
}
Si hago esta AddOptionalElement<T?>(...)
en cuando me siento errores de compilación. Si hago esto AddOptionalElement<Nullable<T>>(...)
entonces obtengo errores del compilador.
¿Hay alguna manera de lograr esto?
Sé que puedo hacer mi llamada al método:
parent.AddOptionalElement<MyType?>(...)
pero es esta la única manera?
El tipo de 'T' debe ser un tipo de valor no anulable con el fin de utilizarlo como parámetro de 'T' en el tipo genérico o método 'System.Nullable' –
BlueChippy
Se aún tendrá el error del compilador ya que necesitamos indicar que T no debe contener nulos. –
@BlueChippy: ¡Estaba arreglando eso como lo comentó! – LukeH