2014-09-26 2 views
0

POS (point of sale) 용 콘솔 애플리케이션을 작성했습니다. 내 임무였다. 나는 그것을 성공적으로 끝 냈지만 교수님은 구조와 목록으로 다시 해 주실 것을 요청하셨습니다. 당신은 내가 목록에서 구조체를 생성 한 다음 목록을 작성 구조체 "P"의 객체를 저장 한 볼 수 있듯이 이제콘솔에 struct 객체를 표시하는 방법은 무엇입니까?

namespace simplePOS 
{ 
    struct Product 
    { 
     public string productName; 
     public double productUnitPrice; 
     public int productQty; 
    } 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      List<Product> Products = new List<Product>(); 
      Product P; 

      P.productName = Console.ReadLine(); 
      P.productUnitPrice = Convert.ToDouble(Console.ReadLine()); 
      P.productQty = Convert.ToInt32(Console.ReadLine()); 

      Products.Add(P); 

      foreach(Product x in Products){ //This doesn't work. 
       Console.WriteLine(x); 
      } 

      Console.ReadLine(); 
     } 
} 

을 : 여기에 단지 구조 및 목록에 대한 내 코드는, 내가 응용 프로그램의 불필요한 코드를 생략 한 . 이제 내 질문은 어떻게 루프에 대한 몇 가지 제품을 표시하는 목록에 저장된 해당 개체 "P"에 액세스 할 수 있습니까?

+0

을 원하는 서식을 수있는이 방법을 계속 사용 거라고? –

+0

아니요, x가 콘솔에 "programName.Product"를 표시하고 있습니다. –

+4

'ToString'을 오버라이드하거나 명시 적으로 그 부분을 인쇄해야합니다. 나는 * 가변적 인 값 유형 및 공개 필드에 대해서는 강력하게 권고합니다. –

답변

1

무시 은 당신이

등의 제품을 결과를 줄 것이다 당신이 구조체 그래서

foreach(Product x in Products) 
{ 
    Console.WriteLine("Product: "+x.productName); 
} 

아래에 제품에 정의 된 속성을 사용하여 참조해야 올바른 결과를 얻을 수 있습니다 ToString()

struct Product 
{ 
    public string productName; 
    public double productUnitPrice; 
    public int productQty; 
     public override string ToString() 
     { 
      return string.Format("Name: {0}, Price: {1}, Qty: {2}",productName,productUnitPrice,productQty); 
     } 
} 

foreach (Product x in Products) 
{ 
    Console.WriteLine(x); 
} 

당신이 그렇게 작동하지 않습니다

+0

감사합니다. 다른 사용자의 솔루션이 한 가지 문제 만 해결 했으므로 해결책이 모두 해결되었습니다. :) –

0
foreach(Product x in Products) 
{ 
    Console.WriteLine(x); 
} 

과 같은 결과를 얻을 수 있습니다. 제품이 "struct."인 제품입니다. ABC

제품 : XYZ

+0

하지만 입력 한 제품이 표시되지 않습니다. 내가 이미 10 개 제품을 입력했고 목록에 객체로 저장되어 있고 모두 루프에 표시하려고한다고 가정하면 작동할까요? –

+0

좋아요. 목록에서 하나 이상의 제품에 대해 확인 했는데도 작동합니다. :) –

+0

하지만 약간의 문제가 있습니다. 각 제품마다 3 가지 속성이 있으며 "x.productQty"를 추가해도 여전히 제품 이름과 수량 만 표시됩니다. 도와주세요 –

관련 문제