我以爲我今天早上生氣了,正準備開始自我剖析,但後來決定讓其他人來看看我的一段代碼,有兩位同事證實我沒有生氣,或者我們都瘋了。myVar = false將myVar設置爲true?
我有下面的代碼:
bool isStaffMember = false;
using (var uam = new ReadOnlyADUserAccountManager(adUser.Domain.ShortName))
{
var props = uam.GetLocalUserProperties(adUser, new string[] { "IsStaff" });
if (props.Count > 0 && props.ContainsKey("IsStaff") && props["IsStaff"] != null && props["IsStaff"].Value.ToString() == "1")
isStaffMember = true;
else
isStaffMember = false;
}
var validGroups = GetValidUserGroups(adUser.Sid);
出於某種原因,我發現的時候達到了代碼的最後一行,isStaffMember是總是如此。所以我放了一些斷點。
單步執行時,isStaffMember保持爲默認值false,直到它到達「isStaffMember = false;」行的位置。現在,對我來說,我應該相當肯定,將isStaffMember設置爲false(或者將它保留爲假)。但是,不,在該行的斷點處,我打了F10,它移到了上面代碼的最後一行,突然間是sffff成員是真的。 GetValidUserGroups方法在此時尚未運行(並且不會更改該值)。
我爲什麼isStaffMember = false原因isStaffMember變得真實,我有些困惑。
任何人都看過這種奇怪的行爲之前,並知道可能是什麼原因造成的?
如果我將isStaffMember = false鍵入它的工作立即窗口,並將其設置爲false。
這是多線程的代碼? –
這段代碼在哪裏運行,你如何調試它?即被調試的代碼正在運行的代碼? – CodeCaster
添加大括號,以便調試器以更易讀的方式標記當前行。 – BartoszKP