2013-10-11 86 views
1

我無法理解這樣的代碼:這段代碼在Visual Basic中意味着什麼?

SaveFileDialog.InitialDirectory = "C:\" 
SaveFileDialog.FileName = "dummy.txt" 
SaveFileDialog.Filter = "txt files (*.txt)|*.txt" 

If (SaveFileDialog.ShowDialog() = 2) Then 
    MsgBox("No dummy has been created", MsgBoxStyle.OkOnly) 
Else 
    Dim StreamWriter As StreamWriter = File.CreateText(SaveFileDialog.FileName) 

我想知道「2」指在這段代碼的if語句的開頭是什麼。

注意:我沒有寫這段代碼。這是我老師給我們的例子。

+0

@ByteBlast =]感謝提醒 –

回答

3

當您撥打SaveFileDialog.ShowDialog方法時,返回DialogResult。所述DialogResult是枚舉和看起來像這樣

public enum DialogResult 
{ 
    None, // 0 
    OK,  // 1 
    Cancel, // 2 !! 
    Abort, // 3 
    Retry, 
    Ignore, 
    Yes, 
    No,  // 7 
} 

在這種情況下,每個枚舉值具有從零開始的隱式數值指標。在您的代碼示例中,代碼根據索引評估DialogResult而不是實際的枚舉值。

這意味着評估DialogResult是否等於2相當於評估DialogResult是否等於DialogResult.Cancel

這意味着,當用戶按下取消對話框窗口按鈕時,MessageBox應顯示通知,他們沒有選擇文件的用戶。

1

2是ShowDialog調用的對話結果(枚舉值)。

DialogResult映射到下列枚舉:http://msdn.microsoft.com/en-us/library/system.windows.forms.dialogresult.aspx

所以,通過檢查

If (SaveFileDialog.ShowDialog() = 2) Then 
    MsgBox("No dummy has been created", MsgBoxStyle.OkOnly) 

代碼被驗證選擇的用戶是否取消該對話框上。

該代碼也應使用用於檢查,這使得它更清楚的枚舉值寫成:

If (SaveFileDialog.ShowDialog() = DialogResult.Cancel) Then 
    MsgBox("No dummy has been created", MsgBoxStyle.OkOnly) 
+1

「的代碼* *應該也被寫入。 。「 – peterG

相關問題