【发布时间】:2016-03-13 10:45:03
【问题描述】:
我正在使用一些方法来设置一些值,但遗憾的是它没有将我的值设置为true,即使我告诉他是true。
您可以在下面找到具有我编写的实际值的方法:
LogPanelData(rcv_bStartGlue, send_bStartGlueACK, send_bStartGlueNACK, bLogRobotFile_OK, rcv_sFileNameRobot, LogLines);
您可以在下面找到包含所有信息的完整方法。在正常情况下a_rcvValue 和a_LogFile_OK 都是true。我第一次加载这个a_sendValueACk = false(在这种情况下是send_bStartGlueACK)。
正如您在方法中看到的那样,我第二次使用同一行(如上)进入此方法时,它不应该出现在第一个 if 语句中,因为 a_sendValueACK 应该是 true。但它告诉我的send_bStartGlueACK 一直都是假的,所以这是不正确的。那么,当我在这个方法中设置为真时,我的send_bStartGlueACK 将是真的,我该如何解决呢?
public void LogPanelData(bool a_rcvValue, bool a_sendValueACK, bool a_sendValueNACK, bool a_LogFile_OK, string a_LogFileName, string a_LogLines)
{
if (a_rcvValue && !a_sendValueACK && a_LogFile_OK)
{
try
{
StreamWriter Sw = new StreamWriter(a_LogFileName, true);
//regel schrijven
Sw.WriteLine(a_LogLines);
//SW afsluiten!!
Sw.Close();
//lijst opvullen met de regels voor output in programma
listOutput.Add(a_LogFileName);
listOutput.Add(a_LogLines);
a_sendValueACK = true; //<<< This does go true, but not the value I send with it
}
catch
{
a_LogFileName = "Kan gegevens niet opslaan!";
a_sendValueNACK = true;
}
}
if (a_rcvValue && !a_LogFile_OK)
{
a_sendValueNACK = true;
}
if (!a_rcvValue && (a_sendValueACK || a_sendValueNACK))
{
send_bStartGlueACK = false;
send_bStartGlueNACK = false;
}
}
【问题讨论】:
-
提示:查看参数是如何传递的——通过 ref 或通过 val。 msdn.microsoft.com/en-us/library/0f66670z.aspx