从其他类访问类的对象
本文关键字:对象 访问 其他 | 更新日期: 2023-09-27 18:22:12
我意识到这可能是一个非常简单的问题,很快就会得到答案。但我想知道该怎么办。我有一个名为Budget的类,它有一个名称为"user01"的对象。我基本上希望能够跨多个类访问该对象,类似于下面的代码。
主
static void Main(string[] args)
{
Budget user01 = new Budget(1000);
}
预算类
class Budget
{
private int _budget;
public Budget(int budget)
{
_budget = budget;
}
public int UserBudget
{
get { return _budget; }
set { _budget = value; }
}
}
费用类别
class Expenses
{
// What I've been trying to do...
public int Something(user01.budget)
{
user01.budget - 100;
return user01.budget;
}
}
我真的不知道该何去何从,希望能得到一点帮助/解释。非常感谢
这是无效的:
public int Something(user01.budget)
但是可以向该方法提供Budget
对象的实例:
public int Something(Budget budget)
{
budget.UserBudget -= 100;
return budget.UserBudget;
}
然后,您可以从消费代码中调用该方法:
Budget user01 = new Budget(1000);
Expenses myExpenses = new Expenses();
int updatedBudget = myExpenses.Something(user01);
该方法不"访问变量user01
"。但是,当您调用该方法时,会将其与user01
实例一起提供。在方法内部,本例中提供的实例由本地budget
变量引用。每当您调用该方法并为其提供Budget
的任何实例时,该实例都将被该局部变量引用。
继续使用调试器进行调试,您应该可以更清楚地了解调用方法时发生的情况。
(请注意,您在这里的命名有点不直观,这可能会增加混乱。您的对象是"预算"还是"用户"?明确定义和命名类型和变量对简化代码编写有很大帮助。)
这是对Expenses类的一个非常简单的更改:
class Expenses
{
// What I've been trying to do...
public int Something(Budget userBudget)
{
userBudget.UserBudget -= 100;
return userBudget.UserBudget;
}
}
然后你从你的主类中这样称呼它:
static void Main(string[] args)
{
Budget user01 = new Budget(1000);
Expenses expenses = new Expenses();
var result = expenses.Something(user01);
}
或者,如果您将Something方法设为static
,则可以在没有实例的情况下调用它:
class Expenses
{
// What I've been trying to do...
public static int Something(Budget userBudget)
{
userBudget.UserBudget -= 100;
return userBudget.UserBudget;
}
}
你这样称呼它:
static void Main(string[] args)
{
Budget user01 = new Budget(1000);
var result = Expenses.Something(user01);
}
在设计方法时,重要的是要记住,一个方法接受一个通用参数,并且是传入特定内容的调用者。