Compare commits

...

2 Commits

5 changed files with 31 additions and 39 deletions

View File

@ -27,6 +27,6 @@ Global
EndGlobalSection EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution GlobalSection(MonoDevelopProperties) = preSolution
description = The C# Class Generator. description = The C# Class Generator.
version = 0.4 version = 0.5
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View File

@ -48,21 +48,6 @@ namespace cscz
public GenerationMode GenerationMode = GenerationMode.PublicVariables; public GenerationMode GenerationMode = GenerationMode.PublicVariables;
/// <summary>
/// Whether to make data members private and create public properties for them instead of making the
/// data members public.
/// This is read only. Please refer to GenerationMode in order to change this field.
/// </summary>
public bool CreateProperties
{
get
{
if (GenerationMode == GenerationMode.PrivateVariablesWithProperties)
return true;
return false;
}
}
public ClassGenerator () public ClassGenerator ()
{ {
} }
@ -134,26 +119,32 @@ namespace cscz
constructorSignature.AppendFormat("{0} in{1}, ", datatypeName, publicDataMemberName); constructorSignature.AppendFormat("{0} in{1}, ", datatypeName, publicDataMemberName);
if (CreateProperties) switch(GenerationMode)
{ {
// Private data member case GenerationMode.PrivateVariablesWithProperties:
classCode.WriteLine("\tprivate {0} {1};", datatypeName, privateDataMemberName); // Private data member
classCode.WriteLine("\tprivate {0} {1};", datatypeName, privateDataMemberName);
// Public property associated with above private data member
properties.WriteLine("\tpublic {0} {1}", datatypeName, publicDataMemberName);
properties.WriteLine("\t{");
properties.WriteLine("\t\tget {{ return {0}; }}", privateDataMemberName);
properties.WriteLine("\t\tset {{ {0} = value; }}", privateDataMemberName);
properties.WriteLine("\t}");
// Constructor body
constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
break;
case GenerationMode.PublicAutoProperties:
properties.WriteLine("\tpublic {0} {1} {{ get; set; }}", datatypeName, publicDataMemberName);
// Public property associated with above private data member constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
properties.WriteLine("\tpublic {0} {1}", datatypeName, publicDataMemberName); break;
properties.WriteLine("\t{"); case GenerationMode.PublicVariables:
properties.WriteLine("\t\tget {{ return {0}; }}", privateDataMemberName); // Constuctor body
properties.WriteLine("\t\tset {{ {0} = value; }}", privateDataMemberName); classCode.WriteLine("\tpublic {0} {1};", datatypeName, publicDataMemberName);
properties.WriteLine("\t}"); constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
break;
// Constructor body
constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
}
else
{
// Constuctor body
classCode.WriteLine("\tpublic {0} {1};", datatypeName, publicDataMemberName);
constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
} }
} }

View File

@ -7,10 +7,11 @@ Usage:
Options: Options:
Argument Meaning Argument Meaning
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
--public Causes the parameters of the class to be defined as public data members. This is the default. --public Generates public data members for the class fields. This is the default.
--private Causes the parameters of the class to be defined as private data members with public accessors. --private Generates private data members with public accessors for the class fields.
--public-auto Generates public auto properties for the class fields.
Note that arguments specified later always override arguments specified earlier. Note that arguments specified later always override arguments specified earlier.

View File

@ -17,7 +17,7 @@ using System.Runtime.CompilerServices;
// The form "{Major}.{Minor}.*" will automatically update the build and revision, // The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision. // and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("0.4.*")] [assembly: AssemblyVersion("0.5.*")]
// The following attributes are used to specify the signing key for the assembly, // The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing. // if desired. See the Mono documentation for more information about signing.

View File

@ -9,7 +9,7 @@
<AssemblyName>cscz</AssemblyName> <AssemblyName>cscz</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<Description>The C# Class Generator.</Description> <Description>The C# Class Generator.</Description>
<ReleaseVersion>0.4</ReleaseVersion> <ReleaseVersion>0.5</ReleaseVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>