はfixinを必要とするいくつかのことがあります:あなたはそれを使用するためにDiceClass
クラスのインスタンスを作成する必要があると思いますので、
- あなた
DiceRoll
方法は、インスタンスメソッドです。
roll1
,roll2
およびroll3
の変数はメソッドに対してローカルなので、メソッドが完了すると変数を使用することはできません。代わりに、それらをクラスのパブリックプロパティにすることができます。
- メソッドが呼び出されるたびに新しい
Random
をインスタンス化する必要はありません(実際にはRandom
にシステムクロックに基づいた値が設定されているため問題が発生する可能性があります)。同じ数字を何度も繰り返すでしょう)。静的にして一度インスタンス化することができます。
Roll
メソッドにはmin
とmax
引数が含まれているので、使用しないでください。現在、0
と6
がハードコードされています。
- フォーマット文字列を使用するには、大括弧(
[]
)の代わりに中括弧({}
)を使用する必要があります。
- 最後に、命名規則の観点からは、クラス名の一部として
Class
という単語は必要ありません。メソッド名の一部としてDice
は不要です。これは入力の量を簡素化し、依然として非常に理解できるでしょう。あなたは、単一のDie
オブジェクトを表すクラスを作成し、それをRoll()
方法とValue
性を付与されてやって検討するかもしれない何を
。その後、ユーザーは、彼らが好きなだけを作成し、リストでそれらを保つことができます。
public class Die
{
public int Value { get; set; }
// Make this static and instantiate it only once to avoid re-seeding issues
private static readonly Random rnd = new Random();
public Die()
{
Value = 1;
}
public void Roll()
{
// This method uses values 1-6 as a standard die
Roll(1, 6);
}
public void Roll(int minValue, int maxValue)
{
Value = rnd.Next(minValue, maxValue + 1);
}
}
さて、次のように、あなたはDie
クラスを使用することができます。
public class MatchPlay
{
public void Match()
{
// Add three Die objects to our list of dice
List<Die> dice = new List<Die>
{
new Die(), new Die(), new Die()
};
Console.WriteLine("Starting Match Play...");
Console.WriteLine();
Console.WriteLine("Round One");
// Roll all dice
dice.ForEach(d => d.Roll());
Console.WriteLine("Your first dice is {0}", dice[0].Value);
Console.WriteLine("Your second dice is {0}", dice[1].Value);
Console.WriteLine("Your third dice is {0}", dice[2].Value);
}
}
最後に、我々は試合をキックオフすることができます私たちのMain
メソッドでは:
private static void Main()
{
MatchPlay game = new MatchPlay();
game.Match();
Console.WriteLine("\nDone!\nPress any key to exit...");
Console.ReadKey();
}
クラスはオブジェクトではありません - 青写真のようなものです。それをオブジェクトとして使用するには、DieClass型の*とオブジェクトをインスタンス化する必要があります。 [ask]を読んで[ツアー]をする必要もあります – Plutonix
まず、C#の基本を学ぶ必要があります。 DiceRoll静的メソッドを作成するか、DieClassをインスタンス化します。 min、maxパラメータも渡します。それらを印刷するには値を返す必要があります。 – Sunil