在对象上调用方法

时间:2013-04-12 09:00:02

标签: c#

我是C#的新手,我正在尝试编写一个roulett模拟器。我试图模拟真实的世界,你有一个轮子和一个庄家,而庄家旋转轮子。在面向对象编程中,这意味着从不同的对象调用另一个对象的方法。我通过方向盘的下面代码是否在C#中以正确的方式执行此操作?

提前致谢

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
    class Program
        {
        static void Main(string[] args)
        {
            Wheel luckyWheel = new Wheel();
            Croupier niceLady = new Croupier();
            niceLady.SpinWheel(luckyWheel);
        }
    }

    class Wheel
    {

        public void Spin()
        {
            Console.WriteLine("Wheel Spun");
        }
    }

    class Croupier
    {
        public void SpinWheel(Wheel spinMe)
        {
            spinMe.Spin();
        }

    }
}

5 个答案:

答案 0 :(得分:2)

是的,这是正确的,也是做这些事情的好方法,因为你的代码变得可以测试。 正如您在其他人Wheel中的功能执行者中的功能Croupier,...

答案 1 :(得分:1)

是的,一开始就是正确的。我建议你将类分成不同的.cs文件。

答案 2 :(得分:0)

是的,这是正确的方法,因为您的两个类都在同一个程序集中,您可以在内部声明方法Spin()

答案 3 :(得分:0)

更好的方法是在创建该类时将轮子传递给快递员。然后构造函数将车轮参考存储在一个字段中,然后当您旋转车轮时,管理人员可以通过本地字段访问车轮。

像这样:

class Program
{
    static void Main(string[] args)
    {
        Wheel wheel = new Wheel();
        Croupier croupier = new Croupier(wheel);
        croupier.SpinWheel();
    }
}

class Wheel
{
    public void Spin()
    {
        Console.WriteLine("Wheel Spun");
    }
}

class Croupier
{
    private Wheel wheel;

    public Croupier(Wheel wheel)
    {
        this.wheel = wheel;
    }

    public void SpinWheel()
    {
        wheel.Spin();
    }
}

答案 4 :(得分:-1)

你可以像Adam K Dean所说的那样改进它,这会引导你使用策略模式作为dotFactory here的解释。