delphi中case语句代替if...else if的问题
代码如下:ifm_ParamFieldsName='@IID'thenm_iIID:=avParameters[iParamCount];ifm_ParamFieldsN...
代码如下:
if m_ParamFieldsName = '@IID' then
m_iIID := avParameters[iParamCount];
if m_ParamFieldsName = __EVEREST_DIVISIONCODE then
vParameterValue := GetCurrentCompany
else if m_ParamFieldsName = __EVEREST_USER then
vParameterValue := GetCurrentUser
else if m_ParamFieldsName = __EVEREST_GMTBIAS then
vParameterValue := GetTimeZoneBias / (60 * 24)
else if m_ParamFieldsName = __EVEREST_INTERNATIONALIZATION then
vParameterValue := IsLocalizationEnabled
else if m_ParamFieldsName = __CZ_EXTENDED_MODE_PARAMETER then
注意的是__EVEREST_DIVISIONCODE 等为字符串变量 展开
if m_ParamFieldsName = '@IID' then
m_iIID := avParameters[iParamCount];
if m_ParamFieldsName = __EVEREST_DIVISIONCODE then
vParameterValue := GetCurrentCompany
else if m_ParamFieldsName = __EVEREST_USER then
vParameterValue := GetCurrentUser
else if m_ParamFieldsName = __EVEREST_GMTBIAS then
vParameterValue := GetTimeZoneBias / (60 * 24)
else if m_ParamFieldsName = __EVEREST_INTERNATIONALIZATION then
vParameterValue := IsLocalizationEnabled
else if m_ParamFieldsName = __CZ_EXTENDED_MODE_PARAMETER then
注意的是__EVEREST_DIVISIONCODE 等为字符串变量 展开
3个回答
展开全部
delphi 10前的好像都不行,最新的版本不知道,case 只能数字或字符,case 0:case1:case 'a':
字符串不行,你这个是系统消息,应该有-1,1,0这类信息编号的吧
字符串不行,你这个是系统消息,应该有-1,1,0这类信息编号的吧
更多追问追答
追问
或许用枚举类型就可以让这些变量变成有序类型,然后满足case语句只能识别有序类型的要求,不过我也不太清楚delphi是否能将变量定义成枚举类型
追答
我看这代码有有数组啊,可以把消息保存成数组,在用数组下标来用case,其实你把最可能的出现的放在前面点的if里, if的效率还是很高的
展开全部
每个if换成一个case;就这么简单
更多追问追答
追问
请了解delphi的case语句的一些特殊要求再回答,而且您说的每一个换成case的话就没改动的意义,我是想要一个case来完成所有的判断
追答
那您是大师.您要是有了一个case全都判断完的方法麻烦给小弟讲讲.
非常感谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
lankii35同学已经给出了方向,
用枚举应该可以解决问题,
这段代码不错啊,有时候我学一些技巧可以自己试试,或者参考VCL源代码
用枚举应该可以解决问题,
这段代码不错啊,有时候我学一些技巧可以自己试试,或者参考VCL源代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询