En C #, ¿qué where T : classsignifica?
Es decir.
public IList<T> DoThis<T>() where T : class
En pocas palabras, esto está restringiendo el parámetro genérico a una clase (o más específicamente un tipo de referencia que podría ser una clase, interfaz, delegado o tipo de matriz).
Vea este artículo de MSDN para más detalles.
Es una restricción de tipo genérico . En este caso, significa que el tipo genérico
Ttiene que ser un tipo de referencia (clase, interfaz, delegado o tipo de matriz).fuente
Es una restricción de tipo
T, que especifica que debe ser una clase.La
wherecláusula se puede usar para especificar otras restricciones de tipo, por ejemplo:Para obtener más información, consulte la página de MSDN en la
wherecláusula o las restricciones de parámetros genéricos .fuente
where T : class, IComparable, new()Eso se restringe
Ta los tipos de referencia . No podrá poner tipos de valor (structsy tipos primitivos exceptostring) allí.fuente
significa que el tipo utilizado como
Tcuando se usa el método genérico debe ser una clase, es decir, no puede ser una estructura o un número incorporado comointodoublefuente
where T: classliteralmente significa esoT has to be a class. Puede ser cualquier tipo de referencia. Ahora, siempre que el código llama a suDoThis<T>()método debe proporcionar una clase para reemplazar T . Por ejemplo, si tuviera que llamar a suDoThis<T>()método, tendré que llamarlo de la siguiente manera:Si su método es como el siguiente:
Entonces, siempre que aparezca T en su método, será reemplazado por MyClass. Entonces, el método final que llama el compilador se verá así:
fuente
new T()no es posible conwhere T : class. tienes que especificarwhere T: new()que se te permita hacerlo.Se llama restricción de parámetro de tipo. Efectivamente limita qué tipo T puede ser.
Restricciones en los parámetros de tipo (Guía de programación de C #)
fuente
T representa un tipo de objeto de, implica que puede dar cualquier tipo de. IList: si IList s = new IList; Ahora s.add ("Siempre aceptar cadena").
fuente
Aquí T se refiere a una clase. Puede ser un tipo de referencia.
fuente
'T' representa un tipo genérico. Significa que puede aceptar cualquier tipo de clase. El siguiente artículo podría ayudar:
fuente