void Game::Dispose(bool disposing) { if(disposed) return; if(disposing) { for (int i = 0; i < components.Count(); i++) { IDisposable* disposable = (IDisposable *)components[i]; if (disposable) disposable->Dispose(); } } disposed = true; Disposed(this, EventArgs::Empty); }
void NamedOperationDataStream::Dispose() { if (isDisposed_ == true || operationDataStreamCollection_.Count() == 0) { return; } for (StateProviderDataStream namedOperationDataStream : operationDataStreamCollection_) { IDisposable * disposableStreamPtr = dynamic_cast<IDisposable *>(namedOperationDataStream.OperationDataStream.RawPtr()); if (disposableStreamPtr != nullptr) { disposableStreamPtr->Dispose(); } } operationDataStreamCollection_.Clear(); isDisposed_ = true; }