Argument.Check 4.0.0

This package has a SemVer 2.0.0 package version: 4.0.0+6.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Argument.Check --version 4.0.0
                    
NuGet\Install-Package Argument.Check -Version 4.0.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="Argument.Check" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Argument.Check" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Argument.Check" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Argument.Check --version 4.0.0
                    
#r "nuget: Argument.Check, 4.0.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.
#:package Argument.Check@4.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Argument.Check&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Argument.Check&version=4.0.0
                    
Install as a Cake Tool

Argument.Check

Argument.Check is a very simple library which makes it very easy to check your arguments or variables for different conditions like 'Null'. It is super fast it is using the new [CallerMemberNameAttribute]

Getting started

Prerequisites

Install the package

dotnet add package Argument.Check

Samples

Each Throw helper could also be used like a "Throw Expression".

Null check

public MyClass(object arg)
{
    Throw.IfNull(arg);
}

Null check, like 'Throw Expressions'

public MyClass(IService service)
{
    _service = Throw.IfNull(service);
}

Null check on a stack variable

public MyClass(IService service)
{
    Throw.IfNull(service);

    var result = service.GetSomething();
    Throw.IfNull(result);
}

File exists

public MyClass(FileInfo fileInfo)
{
    Throw.IfExists(fileInfo);
}

Directory exists

public MyClass(DirectoryInfo directoryInfo)
{
    Throw.IfExists(directoryInfo);
}

Value is greater than

public MyClass(int value)
{
    Throw.IfGreaterThan(value, 10);
}

Value is less than

public MyClass(int value)
{
    Throw.IfLessThan(value, 10);
}

Value is out of range

public MyClass(int value)
{
    Throw.IfOutOfRange(value, 10, 100);
}

Custom expression

public MyClass(string value)
{
    Throw.If(value, v => v.Length > 10 && v.Contains("abc"), "The given string length must not be longer than 10, and must not contain 'abc'");
}

Argument must be an interface

public MyClass(object value)
{
    Throw.IfNotInterface(value); 
}

Argument must be equal to any expectation

public MyClass(object value)
{
    Throw.IfNotEqualsTo(value, new object()); 
}

And many more.

public MyClass(object value)
{    
    Throw.If(...)
    Throw.IfNot(...)

    Throw.IfNull(...)

    Throw.IfEmpty(...)
    Throw.IfNotEmpty(...)

    Throw.IfTypeIs(...)
    Throw.IfTypeIsNot(...)

    Throw.IfEqualsTo(...)
    Throw.IfNotEqualsTo(...)

    Throw.IfExists(...)
    Throw.IfNotExists(...)

    Throw.IfGreaterOrEqual(...)
    Throw.IfGreaterThan(...)

    Throw.IfLessOrEqual(...)
    Throw.IfLessThan(...)

    Throw.IfInterface(...)
    Throw.IfNotInterface(...)
    
    Throw.IfLengthIs(...)
    Throw.IfLengthIsNot(...)
    
    Throw.IfContains(...)
    Throw.IfNotContains(...)
            
    Throw.IfNullOrAny(...)
    Throw.IfNullOrAnyItemIsNull(...)    
    Throw.IfNullOrEmpty(...)
    Throw.IfNullOrWhiteSpace(...)

    Throw.IfOutOfRange(...)
    Throw.IfWhitespace(...)   
    Throw.IfAnyItemIsNullOrWhitespace(...)
}
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Argument.Check:

Package Downloads
Extensions.Pack

A set of useful extensions to make your code smooth and nice readable.

CSharp.Parser.Abstraction

A simple abstraction to parse C# files. Target should be a human friendly readable result. But it is just based on the syntax tree. You don't get any semantic informations.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Argument.Check:

Repository Stars
shadowsocks/Shadowsocks-Net
✈ A light-weight, cross-platform, extensible Shadowsocks developed in C# (.NET Core).
Version Downloads Last Updated
5.0.4 9,197 3/17/2025
5.0.3 1,813 2/19/2025
5.0.2 12,057 1/24/2025
5.0.1 96 1/24/2025
5.0.0 1,434 11/20/2024
4.0.2 89,745 11/20/2024
4.0.1 929 9/6/2024
4.0.0 91,363 11/28/2023
3.0.1 76,726 5/29/2023
3.0.0 16,497 5/29/2023
2.0.0 36,872 7/25/2022
2.0.0-alpha.59 447 7/3/2022
2.0.0-alpha.58 192 7/3/2022
2.0.0-alpha.52 7,695 10/19/2021
1.0.4 362,445 1/19/2020
1.0.3 1,733 1/18/2020
1.0.2 1,745 1/18/2020
1.0.1 27,574 1/3/2020
1.0.0 1,183 1/3/2020
0.9.0 6,383 12/26/2019

Changes:
           - Upgrade to Net8