这是我长时间查看这个奇妙的网页后的第一个问题。
可能我的问题有点傻,但我想知道其他人对此的看法。更好的是,创建几个特定的方法,或者另一方面,只创建一个通用方法?这是一个例子......
unsigned char *Method1(CommandTypeEnum command, ParamsCommand1Struct *params)
{
if(params == NULL) return NULL;
// Construct a string (command) with those specific params (params->element1, ...)
return buffer; // buffer is a member of the class
}
unsigned char *Method2(CommandTypeEnum command, ParamsCommand2Struct *params)
{
...
}
unsigned char *Method3(CommandTypeEnum command, ParamsCommand3Struct *params)
{
...
}
unsigned char *Method4(CommandTypeEnum command, ParamsCommand4Struct *params)
{
...
}
或者
unsigned char *Method(CommandTypeEnum command, void *params)
{
switch(command)
{
case CMD_1:
{
if(params == NULL) return NULL;
ParamsCommand1Struct *value = (ParamsCommand1Struct *) params;
// Construct a string (command) with those specific params (params->element1, ...)
return buffer;
}
break;
// ...
default:
break;
}
}
我不太喜欢后一种选择的主要是这个,
ParamsCommand1Struct *value = (ParamsCommand1Struct *) params;
因为“params”不能是指向“ParamsCommand1Struct”的指针,而是指向“ParamsCommand2Struct”或其他人的指针。
我真的很感谢你的意见!