RSCG – AutoCtor
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
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 | < 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
1 2 3 4 5 6 | // See https://aka.ms/new-console-template for more information using AutoCtorDemo; Console.WriteLine( "Hello, World!" ); var p = new Person( "Andrei" , "Ignat" ); |
01 02 03 04 05 06 07 08 09 10 11 | using AutoCtor; namespace AutoCtorDemo; [AutoConstruct] internal partial class Person { private readonly string FirstName; private readonly string ? LastName; } |
The code that is generated is
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | //------------------------------------------------------------------------------ // <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 |
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 | //------------------------------------------------------------------------------ // <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