MustUse.Analyzer 1.0.0

dotnet add package MustUse.Analyzer --version 1.0.0
NuGet\Install-Package MustUse.Analyzer -Version 1.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="MustUse.Analyzer" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MustUse.Analyzer --version 1.0.0
#r "nuget: MustUse.Analyzer, 1.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.
// Install MustUse.Analyzer as a Cake Addin
#addin nuget:?package=MustUse.Analyzer&version=1.0.0

// Install MustUse.Analyzer as a Cake Tool
#tool nuget:?package=MustUse.Analyzer&version=1.0.0

MustUse Attribute

Introduction

This project introduces the MustUse attribute to C#. MustUse can be applied to types and methods to encourage the usage of their return values. It helps prevent needless computation and ensures that the caller handles the returned value appropriately, especially in cases where the return type represents a result or an error that should be handled.

Inspiration

This attribute is inspired by the #[must_use] attribute in Rust, which serves a similar purpose of ensuring that the result of a function or method is used and not ignored.

Usage

To use the MustUse attribute, simply apply it to a type or method declaration, providing an optional message as a parameter. The message can be used to provide additional context or guidance to the caller.

Applying to Types:

[MustUse("The result of this operation should be handled.")]
public class Result
{
    // Class members...
}

When the MustUse attribute is applied to a type, it indicates that the instances of that type should be used and not ignored. If the return value of a method or function returning this type is not used, a warning will be displayed.

Applying to Methods:

[MustUse("`AddFive` is pure, so ignoring the result indicates your usage is a waste of computation")]
public int AddFive(int x)
{
    return x + 5;
}

When the MustUse attribute is applied to a method, it indicates that the return value of that method should be used and not ignored. If the caller does not use the returned value, a warning will be displayed.

Benefits

Using the MustUse attribute provides several benefits:

  1. It helps prevent needless computation by ensuring that the caller uses the returned value of a method or function.
  2. It encourages proper handling of return types, especially when dealing with result types or error conditions.
  3. It improves code quality and readability by making the intent explicit and providing guidance to the caller.
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on MustUse.Analyzer:

Package Downloads
IronVelo

The IronVelo C# SDK provides a robust and user-friendly interface for integrating with IronVelo's Identity Provider (IdP), as well as utilities for secure programming.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 74 6/21/2024