Результаты поиска
Как избавиться от класса в .net?
Сборщик мусора .NET в конечном итоге освободит память, но что делать, если вы хотите, чтобы эта память немедленно вернулась? Какой код нужно использовать в классе MyClass для вызова
MyClass.Dispose()
и освободить все используемое пространство переменными и объектами в MyClass ?
Принудительное выполнение вызова требуемой функции
У меня есть класс "Status" в C#,, используемый следующим образом:
Status MyFunction()
{
if(...) // something bad
return new Status(false, "Something went wrong")
else
return new Status(true, "OK");
}
Вы поняли идею. Все абоненты MyFunction должны проверить возвращенный статус:
Status myStatus = MyFunction();
if ( ! myStatus.IsOK() )
// handle it, show a message,...
Ленивые абоненты, однако, могут игнорировать статус.
MyFunction(); // call function and ignore returned Status
или
{
Status myStatus = MyFunction();
} // lose all references to myStatus, without calling IsOK() on it
Можно ли сделать это невозможным? например, исключение броска
В общем : можно ли написать класс C#, на котором вы должны вызвать определенную функцию?
В версии C++ класса Status я могу написать тест на некотором частном bool bIsChecked в деструкторе и позвонить в некоторые колокола, когда кто-то не проверяет этот экземпляр.
Что такое эквивалентный вариант в C#? Я где-то читал, что " вам не нужен деструктор в вашем классе C#"
Является ли метод Dispose интерфейса IDisposable опцией?
В этом случае нет неуправляемых ресурсов для освобождения. Кроме того, не определено, когда GC будет утилизировать объект. Когда он в конечном итоге будет удален, все еще можно узнать, где и когда вы проигнорировали этот конкретный экземпляр состояния? Ключевое слово "using" действительно помогает, Но опять же, оно не требуется для ленивых абонентов.