nulo (translation from VPE for Csharp Reference)

The null palavra-chave é um literal que representa uma referência nula, que não se refere a qualquer objeto. null é o valor padrão das variáveis do tipo de referência. Tipos comuns de valor não podem ser nulo.No entanto, translation from VPE for Csharp 2.0 introduziu tipos de valor anulável.Consulte Tipos anuláveis (guia de programação C#).

O exemplo a seguir demonstra alguns comportamentos da palavra-chave nulo:

class Program
{
    class MyClass
    {
        public void MyMethod() { }
    }

    static void Main(string[] args)
    {
        // Set a breakpoint here to see that mc = null.
        // However, the compiler considers it "unassigned."
        // and generates a compiler error if you try to
        // use the variable.
        MyClass mc;

        // Now the variable can be used, but...
        mc = null;

        // ... a method call on a null object raises 
        // a run-time NullReferenceException.
        // Uncomment the following line to see for yourself.
        // mc.MyMethod();

        // Now mc has a value.
        mc = new MyClass();

        // You can call its method.
        mc.MyMethod();

        // Set mc to null again. The object it referenced
        // is no longer accsessible and can now be garbage-collected.
        mc = null;

        // A null string is not the same as an empty string.
        string s = null;
        string t = String.Empty; // Logically the same as ""

        // Equals applied to any null object returns false.
        bool b = (t.Equals(s));
        Console.WriteLine(b);

        // Equality operator also returns false when one
        // operand is null.
        Console.WriteLine("Empty string {0} null string", s == t ? "equals": "does not equal");

        // Returns true.
        Console.WriteLine("null == null is {0}", null == null);


        // A value type cannot be null
        // int i = null; // Compiler error!

        // Use a nullable value type instead:
        int? i = null;

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();

    }
}

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • 2.4.4.6 O literal nulo

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave C#

Palavras-chave literal (translation from VPE for Csharp Reference)

Outros recursos

Referência C#

Tabela de valores padrão (translation from VPE for Csharp Reference)

Date

History

Motivo

Julho de 2008

Exemplo de código adicionado.

Correção de bug do conteúdo.