最佳答案
类型代码可以出现的一个上下文是在 C 中具有 union
类型:
typedef enum Type { T_INT, T_FLOAT, T_DOUBLE, T_LONG } Type;
typedef struct Datum
{
Type type;
union
{
int i;
float f;
long l;
double d;
} u;
} Datum;
这导致代码如下:
Datum v;
switch (v.type)
{
case T_INT:
int_processing(v.u.i);
break;
case T_FLOAT:
float_processing(v.u.f);
break;
case T_DOUBLE:
double_processing(v.u.d);
break;
}
现在,从开关中省略 T_LONG 是有意还是无意?它是最近添加的并且此开关没有获得必要的更新吗?
当你得到很多这样的代码,并且需要添加 T_UNSIGNED 时,你必须去寻找很多地方来纠正。使用 C,您没有像“创建一个类来表示类型”这样简单的解决方案。这是可以做到的,但与使用更多面向对象的语言相比,它需要(很多)更多的努力。
但是,术语“类型代码”指的是示例中的 Type
类型。
关于refactoring - 什么是类型代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564212/