调用对象上的方法

本文关键字:方法 对象 调用 | 更新日期: 2023-09-27 18:08:53

我是c#的新手,我正试图写一个轮盘模拟器。我试着模拟现实世界,你有一个轮子和一个赌盘员,赌盘员旋转轮子。在面向对象编程中,这意味着从另一个对象调用另一个对象的方法。下面的代码是我在c#中传递轮子对象的正确方式吗?

Thanks in advance

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();
        }
    }
}

调用对象上的方法

是的,这是正确的,也是做事情的好方法,因为您的代码成为可测试的。当您在一个类Wheel中具有功能时,执行器在其他类Croupier中具有该功能,…

是的,这是正确的开始。我建议你把这些类分成不同的。cs文件

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

一样:

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();
    }
}

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

您可以像Adam K Dean所说的那样改进它,这导致您使用此处dotFactory所解释的策略模式。