Поскольку я не знаю, как этот тип конструкции даже называется, я не знаю, как начать поиск ответа, поэтому я прошу его напрямую: что такое синтаксис C#, эквивалентный этому коду из C++?Что такое эквивалентный синтаксис этого фрагмента кода C++ в C#?
#define DoExit { \
if (pDialog) delete pDialog; \
if (lib) FreeLibrary(lib); \
if (MadeNew) delete pRS; \
return retval;}
Это было взято из метода класса, поэтому это встроенное объявление функции, которая будет вызываться позже. На самом деле, вот пример того, где он был использован:
if (pRS->GetSize() == 0) DoExit
Обратите внимание на отсутствие либо ()
или прекращения запятой.
Мое первое предположение было какой-то встроенной конструкцией делегата, но я тоже не очень разбираюсь в них, так что это всего лишь предположение.
Так что у вас есть все, что вы C++ гуру!
это макрос C++. в C# нет точно эквивалента, вам просто нужно написать это как некоторую рутину. –
Ну, в C# вы не удаляете указатели, вы позволяете GC управлять памятью, поэтому на C# вы просто ничего не делаете ... – Servy
@Servy Если они не сопоставлены с ресурсами, которые необходимо расположить ... в которых например, вам может понадобиться вызывать 'Dispose()' на них (хотя может также быть и инструкция 'using') –