【问题标题】:Object return type对象返回类型
【发布时间】:2013-10-30 12:08:40
【问题描述】:

我是一名最近转型的 PHP 开发人员,我遇到的最大问题之一是在使用方法时弄清楚返回类型。在 PHP 中它是自动处理的,但在 C# 中,您需要明确告诉任何函数它期望返回的类型。我希望有一种简单的方法可以找出我不知道的这些信息。

这是我正在做的事情的一个例子,也许我正在尝试做的事情的功能对于我试图完成它的方式是不可能的。

假设正确的语法和完成这项工作所需的其余代码(包括 SQL 查询)在上面正确编写,这对我的问题并不重要。

public DataTypeHere ExampleFunction()
{
myTable = new DataTable();  
myAdapter = new SqlDataAdapter();  
myAdapter.SelectCommand = myCommand;  
myAdapter.Fill(myTable);

return myTable;
} 

来电:

dataType Variable;
Variable = ExampleFunction();

GridView1.DataSource = Variable.DefaultView;
GridView1.DataBind();

以及下面的 HTML

<form id="form1" runat="server">
    <asp:GridView
        ID="GridView1"
        runat="server"
    </asp:GridView>
</form>

所以最终的问题是,myTable 需要返回什么类型的变量才能使用 DataBind() 之类的方法?

【问题讨论】:

  • 我强烈建议研究实体框架或其他 ORM,可能还有 ASP.Net MVC。 DataTable 之类的东西现在已经很少使用了。
  • 我同意 HighCore。传递一个 DataTable 是 2003'ish,最好是 2005'ish。这是一个“本土”的 ORM 示例。这个本土的 ORM 将是我至少会做的。 stackoverflow.com/questions/13650443/…
  • “但数据表是如此快速和简单”。 DataTable 的维护成本最终将永远不会得到回报。从不。

标签: c# asp.net sql-server


【解决方案1】:

你返回的是myTable,它是用new DataTable()初始化的,所以很明显返回类型应该是DataTable

【讨论】:

  • Derp,我假设它需要是字符串、int、对象等,但这些都不起作用。这很有效,有时答案比你想象的要简单得多。
【解决方案2】:

在这种情况下,您返回的是 DataTable

public DataTypeHere ExampleFunction()
{
    myTable = new DataTable();  // <---- You can see the type here
    myAdapter = new SqlDataAdapter();  
    myAdapter.SelectCommand = myCommand;  
    myAdapter.Fill(myTable);

    return myTable;
} 

此外,我看不到您在哪里声明了这些变量。信息也会在那里,如果可能的话,您应该在使用它们的方法中声明您的变量具有尽可能小的范围:

public DataTypeHere ExampleFunction()
{
    var myTable = new DataTable();  // <---- You can see the type here
    var myAdapter = new SqlDataAdapter();  
    myAdapter.SelectCommand = myCommand;  
    myAdapter.Fill(myTable);

    return myTable;
}

【讨论】:

  • 感谢您的帮助,我的问题是我没有意识到类也可以是数据类型。
  • @bmanhard 所有数据类型是类、结构、枚举或委托。
猜你喜欢
  • 1970-01-01
  • 2012-05-04
  • 2016-05-14
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 2010-09-14
相关资源
最近更新 更多