调用方法时c#参数改变

时间:2017-05-19 13:20:12

标签: c# parameters

有人可以帮我解释为什么在调用我的方法时我的参数值可能会发生变化吗?

我有一个表单项目,它引用了一个可以将数据发布到Sage的dll。我将一些参数传递给dll,如下所示:

Sage200InvoiceExport.InvoiceExportMain invoice = new 
Sage200InvoiceExport.InvoiceExportMain();
invoice.INSTRUMENT_NO = varInvoiceNumber;
invoice.SECOND_REFERENCE_NO = varSecondReference;
invoice.SUPPLIER_ID = varSupplierId;
invoice.SAGE_ID = varSageID;
invoice.TRANSACTION_DATE = varDateConverted;
invoice.NET_VALUE = dnumNet;
invoice.NET_0 = dnumNet0;
invoice.NET_STD = dnumNetStd;
invoice.NET_DISC = dnumNetDisc;
invoice.VAT = dnumVAT;
invoice.PART_INVOICE = numPartInvoice;
invoice.INVOICE_TYPE = varInvoiceType;
invoice.COMPANY_ID = ACBUid;
invoice.NOMINAL = numNominal;
invoice.COST_CENTRE = numCostCentre;
invoice.INVOICE_ID = numId;
invoice.ALLOWABLE_DIFF = allowableDiff;
invoice.Execute();

参数的值在整个代码加载和几种不同方法中使用。他们没问题,直到我称之为这个方法:

image showing method that changes parameters

在上面的屏幕截图中,值设置正确。一旦我进入F11方法,即使没有代码执行也会改变值。

image showing changed values

您可以在红色突出显示观察窗口中已更改的值。

我已经根据已知的工作版本检查了代码,没有什么不同。我在努力思考什么会改变这两行代码之间的价值?

任何帮助表示感谢。

由于

理查德

1 个答案:

答案 0 :(得分:0)

您是否可能在方法调用中更改了两个变量NET_DISC和VAT的位置?