在我的表单中,我有以下...
if (productNo == this.product1.ProductNumber) //ProductNumber comes from Product class
{
//if so, set the other values of the text boxes to that of the
//product in memory
tbDescription.Text = product1.ProductDescription; //Works - from Product class
tbOnHand.Text = product1.NumberOnHand.ToString(); //Works - from Product class
tbUnitOfMeasure.Text = product1.UnitOfMeasure; //Works - from Product class
tbVendorID.Text = product1.VendorID; // Doesn't work - from derived ManufacturedProduct class
}
其中 VendorID 来自 ManufacturedProduct 类,它是来自 Product 的派生类。最后一行代码不起作用。我希望能够用 product1.VendorID 中的值填充 tbVendorID(顺便说一句,它是一个 int)
我收到以下错误...Objects.Product' 不包含 'VendorID' 的定义,并且找不到接受类型为 'Objects.Product' 的第一个参数的扩展方法 'VendorID'(您是否缺少使用指令或程序集引用?)
最佳答案
如果您想访问子类的属性,您需要将其转换为 ManufacturedProduct
:
ManufacturedProduct mfgProduct = (ManufacturedProduct) product1;
if (productNo == mfgProduct.ProductNumber)
{
tbDescription.Text = mfgProduct.ProductDescription;
tbOnHand.Text = mfgProduct.NumberOnHand.ToString();
tbUnitOfMeasure.Text = mfgProduct.UnitOfMeasure;
tbVendorID.Text = mfgProduct.VendorID;
}
关于c# - 如何使用派生类的值填充文本框? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469293/