modulexcite / ExtraConstraints

Facilitates adding constraints for Enum and Delegate to types and methods.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This is an add-in for Fody

Icon

Facilitates adding constraints for Enum and Delegate to types and methods.

Introduction to Fody

The nuget package NuGet Status

https://nuget.org/packages/ExtraConstraints.Fody/

PM> Install-Package ExtraConstraints.Fody

Your Code

public class Sample
{
    public void MethodWithDelegateConstraint<[DelegateConstraint] T> () {...}

    public void MethodWithTypeDelegateConstraint<[DelegateConstraint(typeof(Func<int>))] T> () {...}

    public void MethodWithEnumConstraint<[EnumConstraint] T>() {...}

    public void MethodWithTypeEnumConstraint<[EnumConstraint(typeof(ConsoleColor))] T>() {...}
} 

What gets compiled

public class Sample
{
    public void MethodWithDelegateConstraint<T>() where T: Delegate {...}

    public void MethodWithTypeDelegateConstraint<T>() where T: Func<int> {...}

    public void MethodWithEnumConstraint<T>() where T: struct, Enum {...}

    public void MethodWithTypeEnumConstraint<T>() where T: struct, ConsoleColor {...}
}

Credit

Inspired by Jon Skeets blog post Generic constraints for enums and delegates.

Based manly on code from Jb Evains post Constraining generic constraints

Icon

Straightjacket designed by Luis Prado from The Noun Project

About

Facilitates adding constraints for Enum and Delegate to types and methods.

License:MIT License


Languages

Language:C# 87.4%Language:PostScript 12.6%