FaustVX.PrimaryParameter.SG
0.4.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package FaustVX.PrimaryParameter.SG --version 0.4.0
NuGet\Install-Package FaustVX.PrimaryParameter.SG -Version 0.4.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FaustVX.PrimaryParameter.SG" Version="0.4.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FaustVX.PrimaryParameter.SG --version 0.4.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FaustVX.PrimaryParameter.SG, 0.4.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install FaustVX.PrimaryParameter.SG as a Cake Addin #addin nuget:?package=FaustVX.PrimaryParameter.SG&version=0.4.0 // Install FaustVX.PrimaryParameter.SG as a Cake Tool #tool nuget:?package=FaustVX.PrimaryParameter.SG&version=0.4.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Primary Parameter
Description
Using a Field
or Property
attributes on parameters.
Automaticaly generate private readonly
fields or private
property.
Forbid the use of primary constructor's parameters.
Usage
partial class C([Field(Name = "_a"), Field, [Property(WithInit = true)]]int i) // type must be partial, but can be class / struct
{
// private readonly int _a = i; // generated field
// private readonly int _i = i; // generated field
// private int { get; init; } = i; // generated Property
public void M0()
{
i++; // error on usage of i
Console.WriteLine(i); // error on usage of i
}
public void M1()
{
var i = 0;
i++; // don't error on usage of locals
Console.WriteLine(_i); // automaticaly created readonly field
Console.WriteLine(_a); // automaticaly created readonly field based on Name property
Console.WriteLine(I); // automaticaly created readonly property
}
}
To eneble the feaure, type [Field]
or [Property]
before the primary parameter you want.
You can type as many attributes as you want on a single parameter.
Attribute Properties
Attributes | Property | Comments | Default value |
---|---|---|---|
Field |
Name |
Property to modify the generated field name | _i (for a parameter named i ) |
Property |
Name |
Property to modify the generated field name | I (for a parameter named i ) |
WithInit |
To generate the init accessor along the get |
false |
|
Scope |
To change the scope of the generated property | private |
Reported Diagnostics
Code | Title | Message | Severity |
---|---|---|---|
PC01 |
Accessing a Primary Parameter | Can't access a primary parameter ('{0}') with a [Field] or [Property] attribute, use {1} | Error |
PC02 |
Attribute generate nothing | Use this attributes only on primary parameter | Warning |
PC03 |
Attribute generate nothing | This member's name ('{0}') is already used | Warning </br>Error when a member's name is already used in the type |
Versions
Version | Date | Comments |
---|---|---|
v0.4.0 | 22/04/2023 | Added PC02 and PC03 warni/errors |
v0.3.1 | 21/04/2023 | Added Scope property on Property attribute</br>Attributes are internal |
v0.3.0 | 20/04/2023 | Added Property attribute |
v0.2.0 | 20/04/2023 | Support for Name fields and multiple Field |
v0.1.0 | 19/04/2023 | Initial release |
There are no supported framework assets in this package.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- IndexRange (>= 1.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.8.0 | 35 | 11/15/2024 |
1.7.0 | 376 | 6/22/2024 |
1.6.0 | 98 | 6/22/2024 |
1.5.1 | 208 | 5/18/2024 |
1.5.0 | 97 | 5/18/2024 |
1.4.0 | 102 | 5/18/2024 |
1.3.4 | 96 | 5/18/2024 |
1.3.3 | 410 | 12/1/2023 |
1.3.2 | 199 | 11/19/2023 |
1.3.1 | 141 | 11/19/2023 |
1.3.0 | 128 | 11/19/2023 |
1.2.0 | 263 | 8/24/2023 |
1.1.0 | 255 | 8/15/2023 |
1.0.0 | 155 | 7/31/2023 |
0.4.7 | 156 | 7/16/2023 |
0.4.6.1 | 158 | 7/16/2023 |
0.4.6 | 156 | 7/16/2023 |
0.4.5 | 141 | 5/17/2023 |
0.4.4 | 179 | 4/27/2023 |
0.4.3 | 174 | 4/27/2023 |
0.4.2 | 173 | 4/26/2023 |
0.4.1 | 179 | 4/25/2023 |
0.4.0 | 190 | 4/22/2023 |
0.3.1 | 180 | 4/20/2023 |
0.3.0 | 183 | 4/20/2023 |
0.2.0 | 176 | 4/20/2023 |
0.1.0 | 189 | 4/19/2023 |