public CSharpConstructorDeclarationCodeGenerator(
     ILanguageAbstraction languageAbstraction,
     AccessModifier accessModifier,
     bool isStatic,
     string name,
     ArgumentInfo[] arguments,
     ParentConstructorType parentConstructorType,
     string[] parentConstructorParameters,
     ScopeCodeGenerator bodyGenerator)
     : base(languageAbstraction, accessModifier, isStatic, name, arguments, parentConstructorType, parentConstructorParameters, bodyGenerator)
 {
 }
 protected ConstructorDeclarationCodeGenerator(
     ILanguageAbstraction languageAbstraction,
     AccessModifier accessModifier,
     bool isStatic,
     string name,
     ArgumentInfo[] arguments,
     ParentConstructorType parentConstructorType,
     string[] parentConstructorParameters,
     ScopeCodeGenerator bodyGenerator)
     : base(languageAbstraction, accessModifier, isStatic, null, null, name, arguments, bodyGenerator)
 {
     this.parentConstructorType       = parentConstructorType;
     this.parentConstructorParameters = parentConstructorParameters ?? new string[0];
 }
 public ConstructorDeclarationCodeGenerator CreateConstructorDeclarationCodeGenerator(AccessModifier accessModifier, bool isStatic, string name, ArgumentInfo[] arguments, ParentConstructorType parentConstructorType, string[] parentConstructorParameters, ScopeCodeGenerator bodyGenerator)
 {
     return(new CSharpConstructorDeclarationCodeGenerator(this, accessModifier, isStatic, name, arguments, parentConstructorType, parentConstructorParameters, bodyGenerator));
 }