[英]Setting a class as a property within another separate class
对于我的项目,我有几个课程。 我想通过以下方式将其中两个类别联系在一起:它是基本预算应用程序。
public class Car
{
public int Insurance { get; set; }
public int Gas { get; set; }
}
public class Budget
{
public Car CarProperty { get; set; }
public Budget()
{
CarProperty = new Car();
}
}
这可能是不可能的,但是我只想实例化Budget类。
Budget budget = new Budget();
然后,我想通过例如Budget中的Car属性来分配Car的属性:
budget.CarProperty.Insurance = 500;
我不知道这是否可能,如果不这样做,或者我正在做一些完全荒谬的事情。 在带有BLL类库的Manager类中,我有一个方法在分配了budget.CarProperty.Insurance = 500之后返回预算。
例如:
public class BudgetManager()
{
public void BudgetCreation()
{
Budget budget = new Budget();
budget.CarProperty.Insurance = 500;
return budget;
}
}
使用Nuget
我创建了一个测试方法,该方法创建了一个新的预算实例
public void TestMethod()
{
Budget budget = new Budget();
BudgetManager manager = new BudgetManager();
budget = manager.BudgetCreation();
Assert.AreEqual(500, budget.CarProperty.Insurance)
}
budget.CarProperty.Insurance只是返回0而不是500。同样,我可能会丢失一些小细节并且对某些东西一无所知,所以请对我轻松一点
总的来说,我同意@Plutonix认为类可以自我维持……但是,如果我理解您的话,那么您希望能够做到这一点:
budget.CarProperty.Insurance = 500;
无需这样做,首先:
budget.CarProperty = new Car();
在这种情况下,您可以这样做:
public class Car
{
public int Insurance { get; set; }
public int Gas { get; set; }
}
public class Budget
{
public Car Car { get; set; }
public Budget()
{
Car = new Car();
}
}
public class BudgetManager
{
public static Budget CreateBudget(int insurance)
{
Budget budget = new Budget();
budget.Car.Insurance = insurance;
return budget;
}
}
因此,当您运行单元测试时,您将获得所需的行为:
[TestMethod]
public void TestMethod1()
{
int insurance = 500;
Budget b = BudgetManager.CreateBudget(insurance);
Assert.AreEqual(insurance, b.Car.Insurance);
}
单元测试了代码,并且按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.