static string fieldNames(FieldInfo[] fields)
 {
     var args = fields.Select(arg => "new" + arg.Name.UppercaseFirst()).ToArray();
     return string.Join(", ", args);
 }
        static string fieldNamesWithType(FieldInfo[] fields)
        {
            var typedArgs = fields.Select(arg => {
                var newArg = "new" + arg.Name.UppercaseFirst();
                var type = TypeGenerator.Generate(arg.FieldType);
                return type + " " + newArg;
            }).ToArray();

            return string.Join(", ", typedArgs);
        }
        static string fieldAssignments(FieldInfo[] fields)
        {
            const string format = "            component.{0} = {1};";
            var assignments = fields.Select(arg => {
                var newArg = "new" + arg.Name.UppercaseFirst();
                return string.Format(format, arg.Name, newArg);
            }).ToArray();

            return string.Join("\n", assignments);
        }