我有一個方法可以接受可爲空的參數,因爲它是從具有空列的表中填充的。如何在一個方法中提供一個可爲空的參數?
private void test(int ID, int? value)
{}
調用此方法時,我需要一些方法來給它一個可空變量,還有就是我的問題。 我嘗試這樣做:
foreach (DataRow row in DataTable1.Rows)
{
test((int)row["ID"], (int?)row["value"]);
}
,但它給了我一個鑄造錯誤
「指定的轉換無效」
所以,我想這一點:
foreach (DataRow row in DataTable1.Rows)
{
test((int)row["ID"], (int)row["value"] ?? DBnull.Value);
}
和這個:
foreach (DataRow row in DataTable1.Rows)
{
test((int)row["ID"], (int)row["value"] ?? null);
}
但他們都給予我的錯誤
「操作?不能適用於int類型的操作數和空
最後一個我想是這樣的:
foreach (DataRow row in DataTable1.Rows)
{
test((int)row["ID"], (int?)row["value"] ?? null);
}
這一次編譯,但給人運行時錯誤
「指定的轉換無效」
那麼我該如何做到這一點? 這個想法是參數值用表中的一個值或null填充。