이론적으로 다양한 유형의 여러 일반 목록을 반환하여 클라이언트에게 다양한 정보를 제공 할 수 있어야하는 인터페이스를 만들었습니다.인터페이스를 통해 다른 유형의 목록에서 결과를 반환합니다. C#
인터페이스 클래스 : 나는 첫 컬렉션을 반환 할 경우에만 수있는 목록의 결과를 통해 루프를 시도 할 때, 당신은 제가 다음에서 결과를 반환해야하는 방법을 이해하는 데 도움이 될 수 있습니다
public interface IExampleInterface{}
public class ExampleType : IExampleInterface
{
public int First;
public int Last;
}
public class ExampleAmount : IExampleInterface
{
public decimal Amount;
public decimal TotalFee;
}
public class ExampleFacts : IExampleInterface
{
public bool TooLow;
public bool TooHigh;
}
인터페이스 제공 :
foreach (dynamic item in ExampleResults(0))
{
Response.Write(item.First.ToString())
Response.Write(item.Last.ToString())
//The first two for 'sT' read fine, it breaks here
Response.Write(item.Amount.ToString())
//... And so on
}
: 나는 데이터를 반환하는 데 필요한 페이지
public class ExampleInterfaceProvider
{
private static readonly string conn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
public static List<IExampleInterface> ExampleResults(int id)
{
//declare variables, read from database query using ExecuteReader...
var sT = new ExampleType
{
First = first;
Last = last;
}
var sA = new ExampleAmount
{
Amount = amount;
TotalFee = totalFee;
}
var sF = new ExampleFacts
{
TooHigh = tooHigh;
TooLow = tooLow;
}
var exampleResults = new List<IExampleInterface> {sT, sA, sF};
return exampleResults;
}
}
어떤 도움이 많이 주시면 감사하겠습니다
,
감사
내가 생각
각 요소를 적절한 형식 인 ExampleType, ExampleAmount 등으로 변환하거나 형식 변수에 따라 각 유형에 구현되는 메소드를 인터페이스에 제공해야합니다. 이 방법을 사용하면 목록의 모든 항목을 호출 할 수 있습니다. 또한 당신의 인터페이스가 있다면 왜'동적'을 사용합니까? 인터페이스를 타입 지정자로 사용할 수 있습니다 :'foreach (ExampleResults (0)의 IExampleInterface item) ' –
오류 메시지 란 무엇입니까? – keith
왜 처음에는 빈 인터페이스를 구현합니까? 인터페이스는 데이터 유형과 호출 코드 (여기서는 for 루프) 사이에서 계약을 설정하기 위해 작성되었습니다. 그렇지 않으면 인터페이스가 쓸모 없게 인터페이스를 설계해야합니다. 그렇지 않으면 인터페이스가 쓸모 없게됩니다. 개체'귀하의 컬렉션 –