你如何使两个实例通过同一个类与echotor进行通信?

时间:2013-02-08 06:12:37

标签: c# methods instance

我们说我有一个人班。我在该人员类中拥有现金属性和名称属性,当它被初始化时,我可以设置现金金额和我想要的名称。 让我们说我想制作一个给出方法,它从人物对象中获取现金并将其交给其他人对象并将其从提供它的人物对象中取走。现在我知道我可以把它放在类之外,让(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
}

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

我是否必须制作一种方法给予和一种方法?如果我希望它是动态的并且只想要方法来调用而不是手动从形式中初始化的对象中获取+和 - 数量,那该怎么办?

请记住,我对此非常陌生,而且我还不知道如何使用活动。

2 个答案:

答案 0 :(得分: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;
}
}

答案 1 :(得分:0)

您可以将3个参数传递给该函数 e.g。

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函数的对象,但是在这个方法中你可以直接从类调用方法,你不需要一个对象来调用功能。