2017-08-06 69 views
-4

我是C#的新手,对我来说真的很困难。我正在用C#编写这个程序,这是我面临的错误。不包含此内容的定义

错误1“Lab1.Invoice”不包含关于“部分号码”和没有扩展方法“部分号码”接受类型“Lab1.Invoice”的第一个参数的定义可以找到(是否缺少using指令?集引用)

这里是我的代码:

using System; 


    namespace Lab1 
    { 
     class InvoiceTest 
     { 
      static void Main(string[] args) 
      { 
       string partNumber, partDescription; 
       int quantity; 
       decimal Iprice; 

       Console.WriteLine("Part Number:"); 
       partNumber = Console.ReadLine(); 

       Console.WriteLine("Part Description:"); 
       partDescription = Console.ReadLine(); 

       Console.WriteLine("Quantity:"); 
       quantity = Convert.ToInt32(Console.ReadLine()); 

       Console.WriteLine("Price:"); 
       Iprice = Convert.ToDecimal(Console.ReadLine()); 



       Invoice invoice = new Invoice(partNumber, partDescription, quantity, Iprice); 

       Console.WriteLine("Order: "); 
       Console.WriteLine("Part Number: {0}", invoice.partNumber); 
       Console.WriteLine("Description: {0}", invoice.pDescription); 
       Console.WriteLine("Quantity: {0}", invoice.Quantity); 
       Console.WriteLine("Price: {0}", invoice.Price); 
       Console.WriteLine("Total: {0}", invoice.GetInvoiceAmount()); 

      } 
     } 
    } 

Here is the code for Invoice:<br> 
namespace Lab1 
{ 
    class Invoice 
    { 
     private int qty; 
     private decimal price; 
     private string pNumber { get; set; } 
     private string pDescription { get; set; } 

     public Invoice(string partNumber, string partDescription, int quantity, decimal Iprice) 
     { 
      pNumber = partNumber; 
      pDescription = partDescription; 
      Quantity = quantity; 
      Price = Iprice; 
     } 

     public int Quantity 
     { 
      get 
      { 
       return qty; 
      } 

      set 
      { 
       if (value > 0) 
        qty = value; 
       else 
        qty = 1; 
      } 
     } 

     public decimal Price 
     { 
      get 
      { 
       return price; 

      } 

      set 
      { 
       if (value > 0) 

        price = value; 

       else 
        price = 1; 
      } 

     } 

     public decimal GetInvoiceAmount() 


     { 
      return Quantity * Price; 
     } 


    } 
} 
+0

该错误是非常具有描述性的。 “发票”的定义在哪里? –

+0

您在“发票”类的定义中是否有一个名为partNumber的属性? – Dido

+0

其在另一个班级内创建的公共班级 – hades

回答

0

添加名为PartNumber的公共属性,在你Invoice类称为PartDescription公共财产。

0

由于错误说:

Invoice不包含名为partNumber属性。

您可以通过构造函数发送它,但它分配给指定的属性:pNumber

使用,或将其重命名为PartNumber

编辑: 只注意到它的私有财产 - 它改为public好吧(你可以离开setter private

0

只是加上你已经得到的评论,如果你想有一个私人setter,然后创建一个私人setter属性。为了

private string pNumber to a public string pNumber 

为它进行访问:

class Invoice 
{ 
    private int qty; 
    private decimal price; 
    public string partNumber { get; private set; } 
    ... 
} 
0

我改变了。我做了同样的事情pDescription