Differences C# / C#Rh / C#Gh

doing tests in C# both in Rh and Gh and excluding all the superfluous code possible, it seems to me that in this case by reducing it completely to the bone, I notice that the rules
highlighted in the link are different in both cases

in Gh I am forced to use this syntax

public class Script_Instance : GH_ScriptInstance
  private void RunScript(out object a)

while in Rh I am not forced to the word “Main”
but change to public instead of static as modifier

class Cls1
    public void Mtd1()

there are discussions regarding these types of changes in new versions
or some links for documentation related to these?
Thank you.