Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#从方法返回类型_C#_Methods - Fatal编程技术网

C#从方法返回类型

C#从方法返回类型,c#,methods,C#,Methods,如果我有一个返回datagridview的方法,并且流程与此类似: if (ds.Tables.Count == 0) { SharedMethods.updateStatus("There are no excluded results to display"); //return dgv; } else { dgv.DataSource = ds.Table

如果我有一个返回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条件为true,那么我不想返回datagridview(因为没有数据),在这种情况下我可以返回什么?如果我返回null,则调用方法具有null datagridview,这会导致以后的问题

谢谢。

你可以

  • 抛出异常
  • null
    并为调用方添加
    null
    的特殊情况处理
  • 如果DataGridView支持,则会显示一个空列表
  • 您通常将3)与
    IEnumerables
    一起使用,但我不知道您的返回类型是否支持它。如果您希望在第一种情况下的行为与查询没有结果时的行为相同,则此解决方案是最好的。

    您可以

  • 抛出异常
  • null
    并为调用方添加
    null
    的特殊情况处理
  • 如果DataGridView支持,则会显示一个空列表

  • 您通常将3)与
    IEnumerables
    一起使用,但我不知道您的返回类型是否支持它。如果您希望在第一种情况下的行为与查询结果相同,则此解决方案是最好的。

    在我看来,您有两种解决方案:

  • 返回一个null
    DataGridView
    ,并用它修改调用代码

  • 返回一个
    DataGridView
    ,但数据源为空(因为没有数据),并确保调用代码能够处理该问题


  • 就我个人而言,我会选择2。您仍然有一个视图但没有数据,因此您仍然需要一个
    DataGridView
    但它是空的。

    在我看来,您有两种解决方案:

  • 返回一个null
    DataGridView
    ,并用它修改调用代码

  • 返回一个
    DataGridView
    ,但数据源为空(因为没有数据),并确保调用代码能够处理该问题


  • 就我个人而言,我会选择2。您仍然有一个视图但没有数据,因此仍然需要一个
    DataGridView
    ,但它是空的。

    我不会从数据绑定方法返回任何内容。你为什么需要这个?(这段代码甚至不会编译,因为true块没有要返回的内容。)


    只需将其设置为一个方法。

    我不会从数据绑定方法返回任何内容。你为什么需要这个?(这段代码甚至不会编译,因为true块没有要返回的内容。)


    只需将其设置为一个方法。

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

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

    如果没有要显示的内容,请将网格的Visible属性设置为false。

    如果没有要显示的内容,请将网格的Visible属性设置为false。

    如果不想返回任何内容或数据库,请不要将其用作数据库方法。只需将它设为空,并让它填充常规属性或不填充。无论如何,您应该在调用代码时处理它。正确。将Visible属性设置为false。@Hans,谢谢。工作完美,非常简单。如果你把它变成一个答案,我会接受它。如果你不想返回任何东西或数据库,不要把它用作数据库方法。只需将它设为空,并让它填充常规属性或不填充。无论如何,您应该在调用代码时处理它。正确。将Visible属性设置为false。@Hans,谢谢。工作完美,非常简单。如果你把这变成一个答案,我会接受它。我认为这里最好的选择是3。我认为这里最好的选择是3。