【发布时间】:2014-12-17 13:53:34
【问题描述】:
我有一个Tax 抽象类
public abstract class Tax
{
public string TaxType;
public int TaxAmnt;
}
它有属性(TaxType,TaxAmnt)和一个抽象方法(我现在已经删除它来解决这个问题)
我有 2 个派生类 - BasicSalesTax、ImportTax 继承税
public class BasicSalesTax : Tax
{
public string TaxType;
public int TaxAmnt;
public BasicSalesTax():base()
{
this.TaxType = "BasicSalesTax";
this.TaxAmnt = 10;
}
}
在我的main.cs 中,我想创建一个列表Taxlist,其中包含所有税费。
List<Tax> objTaxlist = new List<Tax>();
BasicSalesTax objtax1 = new BasicSalesTax();
objtaxlist.Add(objtax1);
objtaxlist 添加了 1 个 item ,但其属性分别为 null 和 0。
我该如何解决这个问题??
当我调试时,objtax1 被正确加载。我可以正确地看到它的属性。
但是当我查看 objtaxlist 的内容时,我看到 attirbutes 为 null & 0。
【问题讨论】:
-
您可以将代码发布到抽象
Tax类吗?你的构造函数里有代码吗? -
该列表与诊断为什么单个对象
objtax1的属性没有保留其构造值无关。我会首先通过每个构造函数调用来调试它。 -
您将属性隐藏在基类中(假设
Tax具有属性TaxType和TaxAmnt)。使用override关键字。 -
这是什么 "BasicSalesTax() objtax1 = new basicsalestax();"
-
odyss-jii,谢谢它成功了!!!!
标签: c# oop inheritance abstract-class