2011-01-25 90 views
1

如果我有一個返回一個DataGridView的方法和流程與此類似:C#從方法返回類型

if (ds.Tables.Count == 0) 
     { 
      SharedMethods.updateStatus("There are no excluded results to display"); 
      //return dgv; 
     } 
     else 
     { 
      dgv.DataSource = ds.Tables[0]; 
      dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; 
      dgv.AllowUserToAddRows = false; 

      return dgv; 
     } 

如果if條件爲真,那麼我不想返回一個DataGridView(如沒有數據),在這種情況下我能返回什麼?如果我返回null,那麼調用方法有一個空的datagridview,導致後面的問題。

謝謝。

+0

如果你想返回任何內容或數據庫,請不要將它用作數據庫方法。只是使其無效,並填補了一般財產或不。 – 2011-01-25 10:41:28

+2

無論如何,您都應該在調用代碼中處理它。這是正確的。 – 2011-01-25 10:42:10

回答

1

只要將網格的Visible屬性設置爲false,如果您沒有任何可顯示內容。

2

可以

  1. 拋出一個異常
  2. null並添加特殊情況處理的null給調用者
  3. 如果DataGridView的支持的話,空單

您通常使用3 )與IEnumerables<T>,但我不知道你的返回類型是否支持它。如果您希望在第一種情況下您的行爲方式與您的查詢沒有結果相同,則此解決方案最爲合適。

0

我看到它的方式有兩種解決方法:

  1. 返回一個空DataGridView,並與修改調用代碼。

  2. 返回DataGridView但空DataSource(因爲沒有數據),並確保您的調用代碼可以與應對。

個人而言,我會跟2.去你仍然有視圖但沒有數據,所以你仍然需要一個DataGridView,但它是空的。

0

我不會從數據綁定方法返回任何東西。你爲什麼需要這個? (這段代碼甚至不會編譯,因爲真正的塊沒有任何返回。)

簡單地使它成爲一種方法。

2

您可以設置方法的返回類型以返回錯誤代碼(enum),並將DataGridView設置爲outref參數。