2013-10-21 6 views
0

저는 최근에 변환 된 PHP 개발자이고 메소드를 사용할 때 반환 유형을 알아내는 것이 가장 큰 문제 중 하나입니다. PHP에서는 자동으로 처리되지만 C#에서는 함수가 반환 할 것으로 예상되는 유형을 명시 적으로 알려줄 필요가 있습니다. 나는 내가 알지 못하는이 정보를 쉽게 찾을 수있는 방법이 있기를 바라고 있습니다.객체 반환 유형

다음은 내가 수행중인 작업의 예입니다. 아마도 내가 수행하려고 시도하는 기능이 내가 수행하려고 시도하는 방법으로 가능하지 않을 수 있습니다.

SQL 쿼리를 포함하여이 작업을 수행하는 데 필요한 올바른 구문과 나머지 코드가 올바르게 작성되었다고 가정하면 제 질문에는 중요하지 않습니다. 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, 다음은

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

return myTable; 
} 

는 호출입니다 DataBind() 같은 메서드를 사용하려면? 당신이 new DataTable()로 초기화됩니다 myTable을 반환하고

+0

Entity Framework 또는 다른 ORM을 살펴 보는 것이 좋습니다. , 그리고 아마 ASP.Net MVC. 'DataTable '등은 요즘 실제로 사용되지 않습니다. –

+0

HighCore에 동의합니다. DataTable을 전달하는 것은 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; 
} 

또한 이러한 변수를 선언 한 위치가 표시되지 않습니다. 정보는 가능한 한 사용되는 방법에서 가능하면 가장 작은 범위를 가질 수 있도록 변수를 선언해야합니다.

+0

유용한 답변을 주셔서 감사합니다. 제 문제는 클래스가 데이터 유형이 될 수도 있다는 것을 인식하지 못했기 때문입니다. – bmanhard

+0

@bmanhard ** 모든 ** 데이터 형식은 클래스, 구조체, 열거 형 또는 대리자입니다. –

4

, 이렇게 명확하게 반환 형식이 경우 DataTable

+0

Derp, 문자열, int, 객체 등이 될 필요가 있다고 가정했지만 그 중 아무 것도 작동하지 않았습니다. 이것은 완벽하게 작동했습니다. 때로는 대답은 실현하려고 시도하는 것보다 훨씬 간단합니다. – bmanhard