我们正在项目中完成许多版本(SVN)和许多人的工作。我们的客户提出了问题,我们已经在代码的某一天已经修复了这个问题。所以我想弄清楚,如果我们已经在客户端发送了正确的版本。在检查了很多事情之后,我发现在客户端反转代码以查看实际代码是最容易的。所以我用反射器做了。为什么CLR会改变我的代码的含义?
VB.Net代码,
Case RequestState.FirstComplete 'RequestState.FirstComplete = 2
Request.Time = Now
If ErrorCode = ProcessErrors.NONE OrElse ProcessErrors.SUBSCRIBER_BUSY_FOR_MT_SMS Then
'OrElse ErrorCode = ProcessErrors.EQUIPMENT_PROTOCOL_ERROR
NextStep(Id, GetDPC(id), NUMBER)
反码,
case 2:
{
request.Time = DateAndTime.Now;
if (errorCode == 0)
{
}
NextStep(invokeId, ref GetDPC(id), ref NUMBER);
}
现在我无法理解这种过于简单化。怎么来的,
If ErrorCode = ProcessErrors.NONE OrElse ProcessErrors.SUBSCRIBER_BUSY_FOR_MT_SMS Then
而成,
if (errorCode == 0)
{
}
我猜'NONE'和'SUBSCRIBER_BUSY_FOR_MT_SMS'都有数字'0'。 –
不,NONE是0而SUBSCRIBER_BUSY_FOR_MT_SMS是31 –
这不是CLR改变你的代码,它是编译器。 CLR是通用语言*运行时*。 –