我有一個OleDbCommand變量,我想用它來創建一個命令生成器,如果它是空的,使用我的數據適配器。如果該變量不爲null,則該變量中已經創建了一個命令生成器。如果我使用局部變量並測試爲null,它會抱怨說:「使用未分配的局部變量...」如果我使變量public/global,則一切正常。相關的代碼是:測試oledbcommandbuilder變量爲空
//Created locally in a button procedure:
OleDbCommandBuilder cBuilder;
if (cBuilder == null)
{
cBuilder = new OleDbCommandBuilder(dAdapter);
}
如果我在本地註釋掉聲明,把它定義爲大衆UP與其他公共變量,那麼它沒有任何牢騷工作正常。相對於我正在做的事情,爲什麼它的範圍在本地或公開會有什麼不同?我只是想測試一下,看看這個命令生成器是否已經創建好了,所以我不會一遍又一遍地創建多個命令。我用我的dataadapter變量做同樣的事情,但在這種情況下,它必須公開。那麼是否還有更好的方法來攻擊這個測試,以便在嘗試創建它之前測試是否已經創建了一些東西?
どうも有難うJL ....我陷入了處置的概念,並擔心每次調用這段代碼時都會創建重複的對象,在這種情況下是OleDbCommandBuilder。因此,如果局部變量每次都以無值開始,那麼我是否正確地假設它們表示的對象是自動放置的?如果是這樣,這很好,因爲它簡化了事情。 – valhalla 2014-12-13 19:25:09
它們不一定會自動處理。您應該使用[使用](http://msdn.microsoft.com/en-us/library/yh598w02.aspx)塊,以確保每次完成使用時都處理它們。 – JLRishe 2014-12-13 19:32:18