This is an add-in for Fody
Facilitates adding constraints for Enum and Delegate to types and methods.
https://nuget.org/packages/ExtraConstraints.Fody/
PM> Install-Package ExtraConstraints.Fody
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>() {...}
}
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 {...}
}
Inspired by Jon Skeets blog post Generic constraints for enums and delegates.
Based manly on code from Jb Evains post Constraining generic constraints
Straightjacket designed by Luis Prado from The Noun Project