调用对象上的方法
本文关键字:方法 对象 调用 | 更新日期: 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所解释的策略模式。