RSCG – AutoCtor
| name | AutoCtor |
| nuget | https://www.nuget.org/packages/AutoCtor/ |
| link | |
| author | Cameron MacFarland |
Generate constructor from non-initialized fields
This is how you can use AutoCtor .
The code that you start with is
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoCtor" Version="1.0.0" />
</ItemGroup>
</Project>
The code that you will use is
// See https://aka.ms/new-console-template for more information using AutoCtorDemo; Console.WriteLine("Hello,World!"); var p = new Person("Andrei","Ignat");
using AutoCtor;
namespace AutoCtorDemo;
[AutoConstruct]
internal partial class Person
{
private readonly string FirstName;
private readonly string? LastName;
}
The code that is generated is
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by https://github.com/distantcam/AutoCtor
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
#if AUTOCTOR_EMBED_ATTRIBUTES
namespace AutoCtor
{
[System.Runtime.CompilerServices.CompilerGenerated]
[System.AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct,AllowMultiple = false,Inherited = false)]
[System.Diagnostics.Conditional("AUTOCTOR_USAGES")]
internal sealed class AutoConstructAttribute : System.Attribute
{
[System.Runtime.CompilerServices.CompilerGenerated]
public AutoConstructAttribute()
{
}
}
}
#endif
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by https://github.com/distantcam/AutoCtor
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AutoCtorDemo
{
partial class Person
{
public Person(string FirstName,string LastName)
{
this.FirstName = FirstName;
this.LastName = LastName;
}
}
}
Code and pdf at
https://ignatandrei.github.io/RSCG_Examples/v2/docs/AutoCtor
Leave a Reply