C# What is Destructors

These are methods that run when an object is no longer in use before the object is unloaded from memory. This cleaning process does the garbage collector mechanism.

Destructive methods are not callable methods. When the block in which the object is used ends (curly braces), they are called and the object is deleted from memory. Destructive methods, just like constructive methods, do not have a return type. Unlike constructors, they can’t get parameters. Destructors cannot be overloaded and inherited. They can only be defined in the class.

Learn C# Programming

The destructors do not have access specifiers. The prefix ~ (tilda) must be preceded by the name before it is defined. Now let’s make a simple example and take a look at the working logic of the destructors.

class Uye { public int No { get; set; } ~Uye() { Debug.WriteLine(this.No + ": im goin down…"); } } 1 2 3 4 5 6 7 8 9 class Uye { public int No { get ; set ; } ~ Uye ( ) { Debug . WriteLine ( this . No + ": im goin down…" ) ; } }

What is written with the Debug class appears in the Output window. If you don’t have it, you can open it by clicking the “View > output” menu or pressing Ctrl + W + O combination. You can use the Debug class in your project system.You must have called the diagnostics library.

Now let’s create a few objects with a loop like the following and follow the output screen.

for (int i = 0; i < 10; i++) { Uye uye = new Uye(); uye.No = i; } Console.ReadLine(); 1 2 3 4 5 6 for ( int i = 0 ; i < 10 ; i ++ ) { Uye uye = new Uye ( ) ; uye . No = i ; } Console . ReadLine ( ) ;

Run the program and follow the output screen. Objects will not be destroyed unless you press Enter (because the program is waiting for the readline line). When you press Enter, you will see that the program will be shut down and all objects will be destroyed.

C# Programming Language

In practice, if you’re not working on large projects that have a lot of data flow, it’s not really going to happen. Normally garbage collector takes care of cleaning, but there may be cases where it is inadequate. For example, you can terminate a thread pool, close open files (streams), or terminate a database connection. If you used unmanaged code, such as Windows APIs, in your project, you can delete them.