2013-10-21 167 views
0

我是最近转换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(); 

及以下

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

的HTML所以最终的问题是,什么类型的变量不myTable的需要归还的,以在其上使用DataBind()方法?

+0

我强烈建议寻找Entity Framework或其他ORM ,并可能ASP.Net MVC。 'DataTable'等目前并不真正使用。 –

+0

我同意HighCore。传递数据表是2003年的,2005年是最好的。这是一个“本土”ORM示例。这本土ORM将是我会做的最少的。 http://stackoverflow.com/questions/13650443/why-is-datatable-faster-than-datareader/15908284#15908284 – granadaCoder

+0

“但是,数据表是如此快速和容易。” DataTable的维护成本永远不会得到回报。决不。 – granadaCoder

回答

3

在这种情况下,你返回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; 
} 
+0

谢谢你的回应,我的问题是我没有意识到一个类也可能是一个数据类型。 – bmanhard

+0

@bmanhard ** **所有的数据类型或者是类,结构,枚举,或委托。 –

4

你返回myTable这与new DataTable()初始化,所以明确的返回类型应该是DataTable

+0

DERP,我是假设它需要是这样的字符串,整数,对象等,并没有任何这是工作。这个工作很完美,有时答案比你试图实现的要简单得多。 – bmanhard