Esto puede sonar un poco estúpido, pero todavía tengo curiosidad sobre lo que piensa la comunidad.
Así que tengo un servicio web que devuelve una clase UpdateInfo.
Consideremos ahora las siguientes definicionesC tipo de diseño de tipo Pregunta
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
}
Aquí está la cuestión, si el TTCFileType tiene el valor TICKMARK entonces necesitará otra enumeración es decir Tickmark Tipo (las demandas lógicas biz esta información). Me pregunto cuál es la mejor manera de representar eso. No quiero un método de firma en la que tengo algo así como
UpdateMethod(UpdateInfo ui, TickMarkType tt)
donde examino tt si ui.fuInfo.FileType == TTCFileType.TICKMARK
supongo que estoy tratando de encontrar una manera elegante semi al menos para representar el requisito condicional para conseguir la segunda pieza de información (de muchas maneras esto recuerda a VARIANTES, si var.VT == VT_ [cosa] luego usa vt. [cosa] y sí, sé cómo se sienten los desarrolladores de C# acerca de las uniones :-)
De todos modos curioso si hay una Manera ingeniosa de hacer esto Gracias
Se puede usar un 'anulable' También conocido como 'TickMarkType?', Entonces usted podría pasar en null en lugar de un 'TickMarkType' al azar si no se va a utilizar. Aunque no estoy seguro de que esto sea exactamente lo que buscas. –
hmm no estoy seguro si eso es lo que quiero, de muchas maneras como dije que lo encontré interesante, no es un problema de tipo de ciencia espacial, simplemente podría recurrir a decir que sí vas a tener que tomar un tipo cuyo valor lo harás ignorar a menos que el otro parámetro sea igual a algo.La API de WIN32 está llena de cosas como esta si dwParamthing es -1, entonces pszPointer será ignorado, y así sucesivamente, no está mal hacer eso; solo me preguntaba si hay algo mejor – Rahul