Chciałbym się dowiedzieć czemu w C# żeby utworzyć obiekt klasy trzeba tworzyć je za pomocą zmiennej referencyjnej i new np. Klasa proba = new Klasa(); a w C++ wystarczy Klasa proba; czemu w C# nie możemy tak postępować ?
po pierwsze - bo taka jest specyfikacja jezyka. dodatkowo w c# jest rozroznienie na typy referencyjne i 'proste' (value types, ale 'wartosciowe' brzmi jakos tak dziwnie), w wypadku tych pierwszych zawsze sa one tworzone dynamicznie na zarzadzanej stercie.
A ja mam pytanie odnośnie tego czy czesto zdarza wam sie samodzielnie usuwać obiekty w C# ?( dopiero sie ucze i ciekawy jestem czy temu zagadnieniu poświecić wiecej czasu czy tez nie)
nie wiem co dokladnie masz na mysli przez samodzielne usuwanie obiektow, to garbage collector zajmuje sie usuwaniem starych obiektow a nie programista.
czasem nalezy recznie zwolnic jakies zewnetrzne zasoby (typu zamknac plik czy polaczenie do bazy danych), przydaje sie do tego using
https://msdn.microsoft.com/en-us/library/yh598w02.aspx
czy czesto zdarza wam sie samodzielnie usuwać obiekty w C#
Każdy obiekt implementujący interfejs IDisposable powinno się usuwać wywołując Dispose()
albo lepiej zamykając użycie obiektu w instrukcję using
.
?
Nie stawia się spacji przed znakiem zapytania.
Chodzi mi dokładnie o to co napisaliście i czy czesto z tego korzystacie?
tak, malo ktory projekt jest w stanie sie bez tego obejsc
Tak przy okazji, warto używać np:
GC.Collect(this);
przy zamykaniu któregoś okna aplikacji? (nie głównego)