3

Is there a way to constraint a generic type to only integral type?

In example, if I have a method

T[] sort<T>(T[] data) where : T ... {}

what would I put as constraint if I wanted to ensure the parameter will be some sort of integral type?

I have tryed looking at MSDN however it does not seem to mention anything about constraining and primitive types.

Thank you for your help.

David Božjak
  • 16,887
  • 18
  • 67
  • 98

2 Answers2

3

Nope. I asked this question before with VB.Net.

Generic Classes (T) - Specifying from a Range of Types VB.Net

As quoted from the page above:
Also, you mentioned constraining to numerics, but I don't think you can constrain to just that. You can however constrain to just primitive types (on the stack) and not allow objects (on the heap) by doing this: Public Structure Statistic(Of t As {Structure, IComparable}).

Community
  • 1
  • 1
Jeffrey Kern
  • 2,024
  • 20
  • 40
0

The same technique -- constraining generic types to be (in C#) struct and IComparable, came up as an answer to detecting boxed values for performance.

How to test whether a value is boxed in C# / .NET?

Community
  • 1
  • 1
Reb.Cabin
  • 5,426
  • 3
  • 35
  • 64