J'ai une classe qui analyse les données d'un fichier texte délimité par des virgules. J'ai une énumération pour les champs pour m'aider à analyser les données plus facilement. La classe qui analyse tous les enregistrements contient des variables publiques pour chaque champ, et bien sûr leurs types de variables. J'ai besoin d'obtenir le type de ces variables basé sur l'énumération donnée.C# Obtention du type d'une variable publique basée sur une valeur Enum
public enum DatabaseField : int
{
NumID1 = 1,
NumID2 = 2,
NumID3 = 3,
};
public class DataBaseRecordInfo
{
public long NumID1 { get; set; }
public int NumID2 { get; set; }
public short NumID3 { get; set; }
public static Type GetType(DatabaseField field)
{
Type type;
switch (field)
{
case DatabaseField.NumID1:
type = typeof(long);
break;
case DatabaseField.NumID2:
type = typeof(int);
break;
case DatabaseField.NumID3:
type = typeof(short);
break;
default:
type = typeof(int);
break;
}
return type;
}
};
NumID1, NumID2, NumID3 sont tous affectés dans mon constructeur. Cependant, je veux obtenir ces types sans jamais créer une instance de DataBaseRecordInfo
. En ce moment ma méthode statique ci-dessus fonctionnerait, cependant, si je voulais changer le type de variable, je devrais le changer en 2 endroits. Y at-il un moyen de contourner le fait d'avoir à changer cela dans les deux endroits et de le garder comme une méthode statique?
Je ne comprends pas la question. Pouvez-vous être plus clair? "Cependant, je veux obtenir ces types sans jamais créer une instance de DataBaseRecordInfo" - qu'est-ce que cela signifie? – hackerhasid
Cela signifie que j'ai des scenerios dans lesquels je veux les types de ces variables, mais je ne veux pas instancier cette classe pour saisir les types. – jsmith