I saw this code example and was wondering what the purpose of the new()
constraint was:
public class Client<T> : IClient where T : IClientFactory, new()
{
public Client(int UserID){ }
}
That's called a "'new' constraint". Here's the documentation on it.
The new constraint specifies that any type argument in a generic class declaration must have a public parameterless constructor. To use the new constraint, the type cannot be abstract.
(Emphasis mine)
Basically, you need it whenever you're creating a new T
somewhere in the class, to ensure that you're only able to pass in things which the compiler can create a new instance of.
Client
is a collection of T
objects, and those T
objects must implement the IClientFactory
interface and have a public parameterless constructor.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With