To me your questions, and your code, suggest that you really need to go back and study the differences between Classes declared as 'static, and declared as 'public, and the requirements/implications of the use of Constructors in both types of Classes.
You may find examining Jon Skeet's many thoughtful posts on use of 'static Classes on StackOverFlow helpful: [
^], such as this one: [
^].
What are your goals here ? If what you are trying to implement is a 'Singleton pattern class, this article by Skeet on his blog may be helpful: [
^].
If you are new to .Net and C#, I'd recommend studying implementations of 'public and 'static Classes separately, rather than mixing them together as shown in your code. I have yet to see a real-world scenario in which a Class defined as non-static, needs to define another, 'static, version of itself in code.
The convention in WinForms .NET, or a Console Application, that the Application itself is "launched" automatically (as long as the compiler has a valid reference) by accessing a static method ('Main) in a static Class ('Program), is a
special case, and not something that you want to try and use as a model to build your own Application "super-structure" around.
Note that in your code the Class 'Program is not 'static, but 'public.