Implement public auto properties & update Help.md.
This commit is contained in:
parent
4593ebfcac
commit
4c68613913
2 changed files with 28 additions and 36 deletions
|
@ -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
|
// Public property associated with above private data member
|
||||||
properties.WriteLine("\tpublic {0} {1}", datatypeName, publicDataMemberName);
|
properties.WriteLine("\tpublic {0} {1}", datatypeName, publicDataMemberName);
|
||||||
properties.WriteLine("\t{");
|
properties.WriteLine("\t{");
|
||||||
properties.WriteLine("\t\tget {{ return {0}; }}", privateDataMemberName);
|
properties.WriteLine("\t\tget {{ return {0}; }}", privateDataMemberName);
|
||||||
properties.WriteLine("\t\tset {{ {0} = value; }}", privateDataMemberName);
|
properties.WriteLine("\t\tset {{ {0} = value; }}", privateDataMemberName);
|
||||||
properties.WriteLine("\t}");
|
properties.WriteLine("\t}");
|
||||||
|
|
||||||
// Constructor body
|
// Constructor body
|
||||||
constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
|
constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
|
||||||
}
|
break;
|
||||||
else
|
case GenerationMode.PublicAutoProperties:
|
||||||
{
|
properties.WriteLine("\tpublic {0} {1} {{ get; set; }}", datatypeName, publicDataMemberName);
|
||||||
// Constuctor body
|
|
||||||
classCode.WriteLine("\tpublic {0} {1};", datatypeName, publicDataMemberName);
|
constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
|
||||||
constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
|
break;
|
||||||
|
case GenerationMode.PublicVariables:
|
||||||
|
// Constuctor body
|
||||||
|
classCode.WriteLine("\tpublic {0} {1};", datatypeName, publicDataMemberName);
|
||||||
|
constructorBody.WriteLine("\t\t{0} = in{0};", publicDataMemberName);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue