0

假设我有一个人班。我在那个 people 类中有一个 cash 属性和一个 name 属性,当它被初始化时,我可以设置现金的数量和我想要的名字。假设我想创建一个 give 方法,它从 people 对象中获取现金并将其提供给其他 people 对象,然后将其从提供它的 people 对象中取出。现在我知道我可以把它放在类之外,让 (x) 对象在它们被初始化之后给 (y) 对象,但这不是我想要的。我想要一个可以在我实际初始化对象之前接受变量和它的方法,所以在我初始化它之后,我要做的就是填写参数。

我知道这可能会令人困惑,所以我会做一些例子来更好地阐述我在说什么。

所以可以说我的人员类是这样的:

class People
{
    private decimal cash;
    private string name = "";
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
    public decimal Cash
    {
        get { return cash; }
        set { cash = value; }
    }
}

有没有办法在同一个类中为类的实例 1 设置现金给类的实例 2?

我尝试创建另一个名为 bet 的类并在其中放置一个方法。但是当我尝试将它放在人员课程中时,我遇到了同样的问题。我做不到

public void give (People person, decimal amount)
{
    person.cash += amount 
    person.cash -= amount
}

因为我正在使用相同的变量,它只会给出数量并获取相同对象的数量。

我必须制定一种给予和一种接受的方法吗?如果我希望它是动态的并且只需要调用方法而不是手动必须 + 和 - 我在表单中初始化的对象的数量,那将如何工作?

请记住,我对此很陌生,我还不知道如何使用事件。

4

2 回答 2

1

您应该将钱从当前人转移到另一个人,请调查我对 Give 方法的实现

class People
{
private decimal cash;
private string name = "";
public string Name
{
get { return name; }
set { name = value; }
}
public decimal Cash
{
get { return cash; }
set { cash = value; }
}

public void Give(Person target, decimal amount)
{
  Cash -= amount;
  target.Cash += amount;
}
}
于 2013-02-08T06:20:04.317 回答
0

您可以将 3 个参数传递给函数,例如

class People
{
private decimal cash;
private string name = "";
public string Name
{
get { return name; }
set { name = value; }
}
public decimal Cash
{
get { return cash; }
set { cash = value; }
}

public static void Give(People p1,People p2, decimal amount)
{
  p2.Cash -= amount;
  p1.Cash += amount;
}
}

您也可以使用 Viacheslav 提供的解决方案,但为此您必须小心调用 Give 函数的对象,但在此方法中,您可以直接从类中调用该方法,不需要对象来调用该函数。

于 2013-02-08T06:31:10.703 回答