C# 不包含对此的定义
我是新来C#的,这对我来说真的很难。我正在用C语言编写这个程序,这是我面临的错误 错误1“Lab1.Invoice”不包含“partNumber”的定义,并且找不到接受“Lab1.Invoice”类型的第一个参数的扩展方法“partNumber”(是否缺少using指令或程序集引用?) 这是我的密码:C# 不包含对此的定义,c#,C#,我是新来C#的,这对我来说真的很难。我正在用C语言编写这个程序,这是我面临的错误 错误1“Lab1.Invoice”不包含“partNumber”的定义,并且找不到接受“Lab1.Invoice”类型的第一个参数的扩展方法“partNumber”(是否缺少using指令或程序集引用?) 这是我的密码: using System; namespace Lab1 { class InvoiceTest { stati
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;
}
}
}
使用系统;
名称空间Lab1
{
类发票测试
{
静态void Main(字符串[]参数)
{
字符串partNumber,partDescription;
整数;
十进位价格;
控制台写入线(“零件号:”);
partNumber=Console.ReadLine();
控制台。WriteLine(“部件说明:”);
partDescription=Console.ReadLine();
控制台写入线(“数量:”;
数量=Convert.ToInt32(Console.ReadLine());
控制台。WriteLine(“价格:”);
Iprice=Convert.ToDecimal(Console.ReadLine());
发票=新发票(零件号、零件说明、数量、Iprice);
控制台写入线(“命令:”);
WriteLine(“零件号:{0}”,invoice.partNumber);
WriteLine(“Description:{0}”,invoice.pddescription);
Console.WriteLine(“数量:{0}”,invoice.Quantity);
Console.WriteLine(“价格:{0}”,invoice.Price);
WriteLine(“总计:{0}”,invoice.GetInvoiceAmount());
}
}
}
以下是发票代码:
名称空间Lab1
{
类别发票
{
私人整数数量;
私人十进制价格;
私有字符串pNumber{get;set;}
私有字符串pDescription{get;set;}
公共发票(字符串零件号、字符串零件说明、整数数量、十进制Iprice)
{
pNumber=零件号;
pDescription=零件描述;
数量=数量;
价格=价格;
}
公共整数
{
得到
{
退货数量;
}
设置
{
如果(值>0)
数量=价值;
其他的
数量=1;
}
}
公共十进制价格
{
得到
{
退货价格;
}
设置
{
如果(值>0)
价格=价值;
其他的
价格=1;
}
}
公共十进制GetInvoiceAmount()
{
退货数量*价格;
}
}
}
在Invoice
类中添加名为PartNumber
的公共属性和名为PartDescription
的公共属性。如错误所示:
Invoice
不包含名为partNumber
的属性
通过构造函数发送,但将其分配给名为:pNumber
使用它或将其重命名为PartNumber
编辑:
刚刚注意到它是一个私有属性-也将其更改为
public
(您可以将setterprivate
)只需添加您已经得到的注释,如果您想要拥有一个私有setter,则使用私有setter创建一个属性
class Invoice
{
private int qty;
private decimal price;
public string partNumber { get; private set; }
...
}
我更改了:private string pNumber to a public string pNumber
以便访问它。我对
pddescription
做了同样的事情,错误非常具有描述性。Invoice
的定义在哪里在您的Invoice
类的定义中是否有一个名为partNumber的属性?它是在另一个类中创建的公共类class@hades张贴发票的定义
请提供。我们不应该试图猜测Invoice
类是什么样子的。(请注意,您可以大大简化示例。不需要五个不同的属性/字段/任何东西来显示一个错误。)