我有以下測試代碼,我通過傳遞它來調用createTreeView(TreeView tree)
方法更新m_ClientTreeView
。但即使是樹形視圖是一種引用類型,變化也不會反射回來。我檢查與裁判,它工作正常。Treeview項目更新作爲參數傳遞時出現
namespace TestRefType
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ClientGUI objCGUI = new ClientGUI();
createTreeView(objCGUI.m_ClientTreeView);
//createTreeView(ref objCGUI.m_ClientTreeView);
objCGUI.m_ClientTreeView.Dock = DockStyle.Fill;
}
private void createTreeView(TreeView tree)
{
tree = new TreeView();
tree.Visible = false;
}
}
public struct ClientGUI
{
public System.Windows.Forms.TreeView m_ClientTreeView;
}
}
可能是什麼原因?
你不能指望看到'你在代碼中創建TreeView'。目前它還沒有被添加到任何形式。它只是一個內存中的對象,它是'ClientGUI'結構的成員。 –
我的意思是,當我在調用createTreeView之後檢查objCGUI.m_ClientTreeView時,它仍然保留空值 –
這是因爲您沒有對'm_ClientTreeView'執行任何更改。如果你想給它賦一個新值,把它作爲'ref'傳遞。 –