Поделиться через


Анонимные типы классов

Классы могут быть анонимными, т е их можно объявлять без Идентификатор.Это полезно, когда необходимо заменить имя класса a typedef имя, как показано в следующем:

typedef struct
{
    unsigned x;
    unsigned y;
} POINT;
ПримечаниеПримечание

Использование анонимных классах, приведенных в предыдущем примере полезна для сохранения совместимости с существующими кодом c#.В некотором коде c#, использование typedef вместе с анонимными структурами превалирующа.

Анонимные классы также полезны, если требуется ссылку к члену класса выглядеть как если бы он не содержался в отдельном классе, например следующие:

struct PTValue
{
    POINT ptLoc;
    union
    {
        int  iValue;
        long lValue;
    };
};

PTValue ptv;

В приведенном выше коде iValue может быть использование оператора (объекта участник-выделения**.**) следующим образом:

int i = ptv.iValue;

Анонимные классы применяются некоторые ограничения.(Дополнительные сведения о неименованных объединениях см. Объединения.) Анонимные классы:

  • Не может иметь конструктор или деструктор.

  • Не может передаваться в качестве аргументов в функции (если проверка типа не нанесена отмена с помощью точка).

  • Не может быть возвращено в качестве возвращаемых значений от функций.

См. также

Ссылки

Определение типов класса