我們正在項目中完成許多版本(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是通用語言*運行時*。 –