C#从方法返回类型

时间:2011-01-25 10:39:55

标签: c# methods

如果我有一个返回datagridview的方法,并且流程类似于:

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,那么调用方法有一个null datagridview,导致以后出现问题。

感谢。

5 个答案:

答案 0 :(得分:2)

你可以

  1. 抛出异常
  2. null并将null的特殊案例处理添加到来电者
  3. 如果DataGridView支持它,则为空列表
  4. 您通常使用3)与IEnumerables<T>,但我不知道您的返回类型是否支持它。如果您希望在第一种情况下的行为方式与在查询中没有结果相同,则此解决方案最佳。

答案 1 :(得分:2)

您可以设置方法的返回类型以返回错误代码(enum),并将DataGridView作为outref参数。

答案 2 :(得分:1)

如果您无需显示任何内容,只需将网格的Visible属性设置为false。

答案 3 :(得分:0)

我认为你有两种解决方案:

  1. 返回空DataGridView并修改您的调用代码。

  2. 返回DataGridView,但为空DataSource(因为没有数据),并确保您的调用代码能够应对。

  3. 我个人认为2.你仍然有视图但没有数据,所以你仍然需要一个DataGridView,但它是空的。

答案 4 :(得分:0)

我不会从数据绑定方法返回任何内容。你为什么需要那个? (此代码甚至不会编译,因为真正的块无法返回。)

只需将其作为一种方法。