Mono.CSharp.CSharpCodeGenerator.GenerateTypeStart C# (CSharp) Method

GenerateTypeStart() protected method

protected GenerateTypeStart ( CodeTypeDeclaration declaration ) : void
declaration CodeTypeDeclaration
return void
		protected override void GenerateTypeStart(CodeTypeDeclaration declaration)
		{
			TextWriter output = Output;

			OutputAttributes (declaration.CustomAttributes, null, false);

			if (!IsCurrentDelegate) {
				OutputTypeAttributes (declaration);

				output.Write (GetSafeName (declaration.Name));

#if NET_2_0
				GenerateGenericsParameters (declaration.TypeParameters);
#endif

				IEnumerator enumerator = declaration.BaseTypes.GetEnumerator ();
				if (enumerator.MoveNext ()) {
					CodeTypeReference type = (CodeTypeReference) enumerator.Current;

					output.Write (" : ");
					OutputType (type);

					while (enumerator.MoveNext ()) {
						type = (CodeTypeReference) enumerator.Current;

						output.Write (", ");
						OutputType (type);
					}
				}

#if NET_2_0
				GenerateGenericsConstraints (declaration.TypeParameters);
#endif
				OutputStartBrace ();
				++Indent;
			} else {
				if ((declaration.TypeAttributes & TypeAttributes.VisibilityMask) == TypeAttributes.Public) {
					output.Write ("public ");
				}

				CodeTypeDelegate delegateDecl = (CodeTypeDelegate) declaration;
				output.Write ("delegate ");
				OutputType (delegateDecl.ReturnType);
				output.Write (" ");
				output.Write (GetSafeName (declaration.Name));
				output.Write ("(");
				OutputParameters (delegateDecl.Parameters);
				output.WriteLine (");");
			}
		}
CSharpCodeGenerator