Анонимные типы классов
Классы могут быть анонимными, т е их можно объявлять без Идентификатор.Это полезно, когда необходимо заменить имя класса 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;
Анонимные классы применяются некоторые ограничения.(Дополнительные сведения о неименованных объединениях см. Объединения.) Анонимные классы:
Не может иметь конструктор или деструктор.
Не может передаваться в качестве аргументов в функции (если проверка типа не нанесена отмена с помощью точка).
Не может быть возвращено в качестве возвращаемых значений от функций.