以下是一个使用委托实现的简单游戏的示例:
using System;
delegate void GameDelegate();
class Game
{
static void Main(string[] args)
{
GameDelegate game = null;
Console.WriteLine("请选择游戏:1.猜数字游戏 2.石头剪刀布游戏");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
game = new GameDelegate(GuessNumber);
break;
case 2:
game = new GameDelegate(RockPaperScissors);
break;
default:
Console.WriteLine("错误的选择");
break;
}
if (game != null)
{
game();
}
Console.ReadLine();
}
static void GuessNumber()
{
Random rand = new Random();
int secretNumber = rand.Next(1, 100);
Console.WriteLine("猜数字游戏开始,请输入数字:");
int guess = int.Parse(Console.ReadLine());
while (guess != secretNumber)
{
Console.WriteLine("错误,请重新输入:");
guess = int.Parse(Console.ReadLine());
}
Console.WriteLine("恭喜你,猜对了!");
}
static void RockPaperScissors()
{
Console.WriteLine("石头剪刀布游戏开始,请选择:1.石头 2.剪刀 3.布");
int player = int.Parse(Console.ReadLine());
Random rand = new Random();
int computer = rand.Next(1, 4);
Console.WriteLine("电脑选择了:" + computer);
if (player == computer)
{
Console.WriteLine("平局");
}
else if (player == 1 && computer == 2 || player == 2 && computer == 3 || player == 3 && computer == 1)
{
Console.WriteLine("你赢了");
}
else
{
Console.WriteLine("你输了");
}
}
}在此代码中,我们创建了一个 GameDelegate 类型的委托,它可以指向任何返回类型为 `void
2016 © donet5.comApache Licence 2.0