Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Nullable<T> (Estructura)

Representa un tipo de valor que se puede asignar como null.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

[SerializableAttribute]
public struct Nullable<T>
where T : struct

Parámetros de tipo

T

Tipo de valor subyacente del tipo genérico Nullable<T>.

El tipo Nullable<T> expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsNullable<T>Inicializa una nueva instancia de la estructura Nullable<T> en el valor especificado.
Arriba

  NombreDescripción
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsHasValueObtiene un valor que indica si el objeto Nullable<T> actual tiene un valor válido de su tipo subyacente.
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsValueObtiene el valor del objeto Nullable<T> actual si se ha asignado un valor subyacente válido.
Arriba

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEqualsIndica si el objeto Nullable<T> actual es igual a un objeto especificado. (Invalida a ValueType.Equals(Object)).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCodeRecupera el código hash del objeto devuelto por la propiedad Value. (Invalida a ValueType.GetHashCode()).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetValueOrDefault()Recupera el valor del objeto Nullable<T> actual o el valor predeterminado del objeto.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetValueOrDefault(T)Recupera el valor del objeto Nullable<T> actual o el valor predeterminado especificado.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsToStringDevuelve la representación de texto del valor del objeto Nullable<T> actual. (Invalida a ValueType.ToString()).
Arriba

  NombreDescripción
Operador públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsExplicit(Nullable<T> to T)Devuelve el valor de un valor Nullable<T> especificado.
Operador públicoMiembro estáticoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsImplicit(T to Nullable<T>)Crea un nuevo objeto Nullable<T> inicializado en un valor especificado.
Arriba

Se dice que un tipo admite valores NULL si se le puede asignar un valor o se le puede asignar null, lo que significa que el tipo no tiene ningún valor en absoluto. De forma predeterminada, todos los tipos de referencia, como String, admiten valores NULL, pero todos los tipos de valor, como Int32, no.

En C# y Visual Basic, marca un tipo de valor como que acepta valores NULL mediante la notación de ? después del tipo de valor. Por ejemplo, int? en C# o Integer? en Visual Basic se declara un tipo de valor entero que puede estar asignado null.

La estructura Nullable<T> admite que sólo se utilice un tipo de valor como tipo que acepta valores NULL porque hace referencia a los tipos que aceptan valores NULL por diseño.

La clase Nullable proporciona compatibilidad complementaria para la estructura Nullable<T>. La clase Nullable admite la obtención del tipo subyacente de un tipo que acepta valores NULL y las operaciones de comparación e igualdad en pares de tipos que aceptan valores NULL y cuyos tipos subyacentes de valor no admiten las operaciones genéricas de comparación e igualdad.

Propiedades fundamentales

Los dos miembros fundamentales de la estructura Nullable<T> son las propiedades HasValue y Value. Si la propiedad HasValue de un objeto Nullable<T> es true, se puede tener acceso al valor del objeto con la propiedad Value. Si la propiedad HasValue es false, el valor del objeto está sin definir y, al intentar tener acceso a la propiedad Value, se produce una excepción InvalidOperationException.

Conversión boxing y conversión unboxing

Cuando a un tipo que acepta valores NULL se le ha aplicado la conversión boxing, Common Language Runtime aplica la conversión boxing automáticamente al valor subyacente del objeto Nullable<T>, y no al propio objeto Nullable<T>. Es decir, si la propiedad HasValue es true, se aplica la conversión boxing al contenido de la propiedad Value. Cuando se ha aplicado la conversión unboxing al valor subyacente de un tipo que acepta valores NULL, Common Language Runtime crea una nueva estructura Nullable<T> inicializada en el valor subyacente.

Si la propiedad HasValue de un tipo que acepta valores NULL es false, el resultado de una operación de conversión boxing es null. Por consiguiente, si un tipo que acepta valores NULL al que se le ha aplicado la conversión boxing se pasa a un método que espera un argumento de objeto, ese método debe estar preparado para controlar el hecho de que el argumento sea null. Cuando se aplica la conversión boxing de null en un tipo que acepta valores NULL, Common Language Runtime crea una nueva estructura Nullable<T> e inicializa su propiedad HasValue en false.

.NET Framework 4.5.1 y componentes del runtime de Windows

A partir de .NET Framework 4.5.1, puede incluir Nullable<T> escrito como miembro de una estructura exportada en una biblioteca de WinMD. Previamente, esto no estaba admitido.

En el ejemplo de código siguiente se definen tres filas de una tabla de la base de datos de ejemplo Microsoft Pubs. La tabla contiene dos columnas que no aceptan valores NULL y dos columnas que sí los aceptan.


// This code example demonstrates the Nullable<T> class.
// The code example defines a database table in which two columns 
// are nullable. In the application, an array of rows is created 
// and initialized. The table rows could subsequently be 
// written to a database.

using System;

class Sample 
{
// Define the "titleAuthor" table of the Microsoft "pubs" database. 
    public struct titleAuthor 
    {
    // Author ID; format ###-##-####
    public string au_id;
    // Title ID; format AA####
    public string title_id;
    // Author ORD is nullable.
    public short? au_ord;
    // Royalty Percent is nullable.
    public int? royaltyper;
    }

    public static void Main() 
    {
// Declare and initialize the titleAuthor array.
    titleAuthor[] ta = new titleAuthor[3];
    ta[0].au_id = "712-32-1176";
    ta[0].title_id = "PS3333";
    ta[0].au_ord = 1;
    ta[0].royaltyper = 100;

    ta[1].au_id = "213-46-8915";
    ta[1].title_id = "BU1032";
    ta[1].au_ord = null;
    ta[1].royaltyper = null;

    ta[2].au_id = "672-71-3249";
    ta[2].title_id = "TC7777";
    ta[2].au_ord = null;
    ta[2].royaltyper = 40;

// Display the values of the titleAuthor array elements, and 
// display a legend.
    Display("Title Authors Table", ta);
    Console.WriteLine("Legend:");
    Console.WriteLine("An Author ORD of -1 means no value is defined.");
    Console.WriteLine("A Royalty % of 0 means no value is defined.");
    }

// Display the values of the titleAuthor array elements.
    public static void Display(string dspTitle, 
                               titleAuthor[] dspAllTitleAuthors)
    {
    Console.WriteLine("*** {0} ***", dspTitle);
    foreach (titleAuthor dspTA in dspAllTitleAuthors)
       {
       Console.WriteLine("Author ID ... {0}", dspTA.au_id);
       Console.WriteLine("Title ID .... {0}", dspTA.title_id);
       Console.WriteLine("Author ORD .. {0}", dspTA.au_ord ?? -1);
       Console.WriteLine("Royalty % ... {0}", dspTA.royaltyper ?? 0);
       Console.WriteLine();       
       }
    }
}

/*
This code example produces the following results:

*** Title Authors Table ***
Author ID ... 712-32-1176
Title ID .... PS3333
Author ORD .. 1
Royalty % ... 100

Author ID ... 213-46-8915
Title ID .... BU1032
Author ORD .. -1
Royalty % ... 0

Author ID ... 672-71-3249
Title ID .... TC7777
Author ORD .. -1
Royalty % ... 40

Legend:
An Author ORD of -1 means no value is defined.
A Royalty % of 0 means no value is defined.

*/


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft