私はいくつかの学習教材に取り組んでいて、理解できないコードに遭遇しました。私はサムライをインスタンス化するときコンストラクタの外側にあるメソッドC#
class Program
{
static void Main(string[] args)
{
var warrior = new Samurai();
warrior.Attack("the evildoers");
Console.ReadLine();
}
class Sword
{
public void Hit(string target)
{
Console.WriteLine("Chopped {0} clean in half", target);
}
}
class Samurai
{
readonly Sword sword;
public Samurai()
{
this.sword = new Sword();
}
public void Attack(string target)
{
this.sword.Hit(target);
}
}
}
私に関する限り、私は方法public Samurai()
を実行します。 Attack
メソッドがコンストラクタの外側にある場合、メソッドwarrior.Attack
はどのように呼び出されますかpublic Samurai()
?
var warrior = new Samurai();
あなたはサムライクラスの新しいインスタンスを作成し、そして:
'公共の侍()'、 'Samurai'クラスのコンストラクタではありません方法。メソッド 'Attack()'はすでにコンストラクタの外にあるので、私はあなたが実際に知りたいことで混乱しています。 –
上記のコメントに、Samuraiクラスのオブジェクトを介してAttackメソッドを呼び出すことを追加しています –
あなたに求めていることはわかりません。あなたがなぜ戦士か攻撃者かがサムライの攻撃方法を呼び出すのか、それともこのプロセスがどのような過程を理解していないのか分かりませんか? – hvd