Oye, creo que tengo una idea equivocada aquí, pero no estoy seguro de qué es lo mejor. Quiero una clase con una variable miembro que puede ser de cualquier tipo, dependiendo de lo que se necesite en ese momento. Hasta el momento, tengo algo como esto:¿Miembros genéricos de la clase en C#?
public class ConfigSetting<T> {
private T value;
public T GetValue() {
return value;
}
public void ChangeValue() {
}
public ConfigSetting(string heading, string key) {
this.value = DerivedMethods.configsettings.SettingGroups[heading].Settings[key].RawValue;
}
}
El tipo devuelto por el lado derecho de la línea 'this.value' es una cadena, en la actualidad. Sé que parece que no necesito usar nada más que el tipo de cadena, pero eventualmente expandiré el constructor, de modo que 'this.value' podría ser una cadena, int, float o bool.
De todos modos, mi compilador dice "No se puede convertir 'cadena' a 'T'", así que supongo que estoy haciendo algo muy al revés.
Gracias.
Gracias. Esto compila (aunque todavía tengo que probarlo). Tengo dos preguntas: 1: ¿Por qué tengo que pasar por el objeto? 2: ¿Qué sucede después de esto si trato de usar métodos de cadena en el valor? ¿Sabe C# ahora que el valor es de tipo String? – Xenoprimate
no RawValue siempre devuelve una cadena? ¿no fallaría la conversión a int, long, etc? – bendewey
Sí, pero como dije en mi pregunta original, tengo la intención de expandir el constructor. – Xenoprimate