In C#, do I have to ***always*** destroy an object once I am done with it? If not, on what conditions do I have to destroy the object and call the destructor? What will happen if I don't destroy the object? What are the pros and cons?

Simple Example:

```
Help h = new Help();

h.program_name = "myprogram.exe";
h.release_date = "01/10/2013";
h.version_number = "1.2.0.0"; 

if (args.Length > 0)
{
    if ((args[0] == "-help") || (args[0] == "-version")||(args[0] == "/?"))
    {
        h.writeline();
    }
}

```