奇思秒想 将CString放在switch中做为判断条件

本文介绍了一种在MFC编程环境下将CString变量用于Switch语句的方法,通过自定义宏和函数实现,提高了代码的可读性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

witch在代码中大家一定经常用到,而在MFC代码里,CString用到的次数应该更经常,但我们都知道,switch的代码里,不是可以用CString变量的,这让我们很头痛,只能选择用if else来做跳转了,使的代码看起来很不舒服,所以花了一上午的时间整了个函数,直接将字符串用到Switch里。呵呵,虽然不是正正的switch,但起码看起来像Switch了,可以有效的提高代码可读性。话说到这里结束,上代码来,有兴趣的朋码可以帮忙完善一下。

1.          添加如下代码到你的代码中

#define SWITCH(str,...)     switch(Switch(str, ##__VA_ARGS__, _T("___End___")))

int Switch(CString str,...)

{

     va_list list;

     int i = 0;

     va_start(list,str);

     CString Case(_T(""));

     while(Case != _T("___End___"))

     {

         Case = va_arg(list,TCHAR*);

         if(Case == str)

         {

              return i;

         }

         i++;

     }

     va_end(list);

     return -1;

}

2.          使用方法

void Test()

{

 

         CString str(_T("Help"));

     SWITCH(str,_T("OK"),_T("Help"))

     {

         case 0:

              {

                   // OK

                   break;

              }

         case 1:

              {

                   // Help

                   break;

              }

         default:

              {

                   break;

              }

     }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值