YAGuard 1.1.3
See the version list below for details.
dotnet add package YAGuard --version 1.1.3
NuGet\Install-Package YAGuard -Version 1.1.3
<PackageReference Include="YAGuard" Version="1.1.3" />
paket add YAGuard --version 1.1.3
#r "nuget: YAGuard, 1.1.3"
// Install YAGuard as a Cake Addin #addin nuget:?package=YAGuard&version=1.1.3 // Install YAGuard as a Cake Tool #tool nuget:?package=YAGuard&version=1.1.3
Added support for Net5 and Net6
YAGuard
Yet Another Guard argument validation package. Provide the argument for validation, its name is automatically resolved in the resulting exception. Usage: public void MyFunc(string myArg) { Guard.AgainstNull(myArg); // or Guard.AgainstNull( () ⇒ myArg ); // or Guard.AgainstNull(myArg, "myArg"); // or Guard.AgainstNull(myArg, nameof(myArg)); } In case myArg is null, this will throw an ArgumentNullException with the correct argument name.
You can also use value of the argument immediately like this: public void MyFunc(string myArg) { string validatedArg1 = Guard.AgainstNull(myArg); // or string validatedArg2 = Guard.AgainstNull( () ⇒ myArg ); // or string validatedArg3 = Guard.AgainstNull(myArg, "myArg"); // or string validatedArg4 = Guard.AgainstNull(myArg, nameof(myArg)); }
##Examples To validate method arguments: public void MyMethod(string myArg) { Guard.AgainstNull(myArg); // Will throw ArgumentNullException when myArg is null. Guard.AgainstNull(() ⇒ myArg); // Will throw ArgumentNullException when myArg is null. Guard.AgainstNullOrEmptyString(myArg); // Will throw ArgumentException when myArg is null or empty. Guard.AgainstLongString(myArg, 10); // Will throw ArgumentException when myArg is longer then 10 characters.
MyProperty = myArg;
...
}
Use intellisense for a full list of supported validation methods.
##Limitations All styles detect invalid parameter values correctly, but there are differences in the efficiency in resolving parameter names. The expression style Guard.AgainstNull(() ⇒ myArg); reliably resolves the name of the parameter in most scenarios.
The simple style Guard.AgainstNull(myArg) works correctly when there's a single method parameter, or when the type of the guarded parameter is unique in the argument list. In case you are validating anything other than a method parameter, use the expression style, as the simple style uses the method declaration to resolve the parameter name. In case there are two parameters of the same type, the parameter name in the exception thrown will contain both of their names. In such cases, use the expression style.
#Release History ##v1.1.x Added support for the expression style Guard.Against...( () ⇒ myArg ); Added best effort parameter name resolution to the plain style validation.
##v1.0.4 Retired the Assign class, changed Guard methods to return the argument value.
##v1.0.x Added support for the style Guard.Against...(myArg); which automatically resolves the name of the argument.
Removed support for the style Guard.Against...(new { myArg });
##v0.0.x Implemented two styles: Guard.Against...(myArg, argName); Guard.Against...(new { myArg }); the second one to help avoid typing the name of the argument. But it didn't really help when compared to nameof(myArg).
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 is compatible. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net452 is compatible. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 2.1
- No dependencies.
-
.NETCoreApp 3.1
- No dependencies.
-
.NETFramework 4.5.2
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on YAGuard:
Package | Downloads |
---|---|
B.MaskedTimers
A timer with a set of intervals to mask when the timer can fire. The timer will only fire within the specified intervals. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.0.0 | 216 | 6/24/2024 |
1.1.4 | 3,554 | 10/10/2023 |
1.1.3 | 4,643 | 3/5/2022 |
1.1.2 | 2,077 | 1/2/2021 |
1.1.1 | 328 | 12/29/2020 |
1.1.0 | 406 | 12/28/2020 |
1.0.4 | 341 | 12/27/2020 |
1.0.3 | 367 | 11/28/2020 |
1.0.2 | 364 | 11/28/2020 |
1.0.1 | 412 | 11/28/2020 |
1.0.0 | 432 | 11/28/2020 |
0.0.5 | 484 | 3/5/2020 |
0.0.4 | 433 | 2/5/2020 |
0.0.3 | 493 | 2/3/2020 |
0.0.2 | 555 | 2/2/2020 |
0.0.1 | 589 | 2/2/2020 |
0.0.0 | 461 | 2/2/2020 |
Added support for argument type validation.