Cela peut sembler un peu stupide, mais je suis toujours curieux de savoir ce que la communauté pense.
J'ai donc un WebService retournant une classe UpdateInfo.
Considérons maintenant les définitions suivantesC# type design Question
public enum TTCFileType
{
API = 0,
BOOKMARK,
TICKMARK
}
public class FileUpdateInfo
{
public string FileName;
public string FileDownLoadURI;
public TTCFileType FileType;
}
public class UpdateInfo
{
public FileUpdateInfo fuInfo;
//Other
}
Voici la question, si le TTCFileType a la valeur TICKMARK alors je besoin d'un autre type ENUM à savoir Tickmark (les exigences logiques de biz cette information). Je me demande quelle est la meilleure façon de représenter cela. Je ne veux pas une signature de méthode où j'ai quelque chose comme
UpdateMethod(UpdateInfo ui, TickMarkType tt)
où j'examinerai tt si ui.fuInfo.FileType == TTCFileType.TICKMARK
Je suppose que je suis en train de trouver un moyen élegante au moins pour représenter l'exigence conditionnelle pour obtenir le deuxième morceau de informations sur (à bien des égards cela rappelle tellement VARIANTS, si var.VT == VT_ [truc] puis utiliser vt. [thingy] et oui je sais comment les développeurs # c se sentent sur les syndicats :-)
Quoi qu'il en soit curieux s'il y a un astucieux façon de le faire Merci
Vous pouvez utiliser un 'Nullable' Alias 'TickMarkType?', Alors vous pourriez passer null au lieu d'un 'TickMarkType 'aléatoire s'il ne doit pas être utilisé. Bien que je ne suis pas sûr que ce soit exactement ce que vous recherchez. –
hmm pas sûr si c'est ce que je veux, à bien des égards comme je l'ai dit je l'ai trouvé intéressant ce n'est pas un problème de type fusée science je pourrais juste recourir à dire oui vous devrez prendre un type dont la valeur ignore à moins que l'autre paramètre ne soit égal à quelque chose.WIN32 API sont remplis avec des choses comme ça si dwParamthing est -1 alors pszPointer sera ignoré et ainsi de suite et donc ce n'est pas faux de faire cela se demandait s'il y a quelque chose de mieux – Rahul