最近、C++ から C# に切り替えましたが、C# で同等のことを行うにはどうすればよいか考えています。C ++では、これを行うことができました:
Enemy *enemy;
enemy = new Enemy("Goblin", 20, 20);
C# では、ポインター メソッドとデリゲートを使用してみましたが、どちらも失敗しました。問題は、テキスト RPG に複数の敵がいて、戦闘プロセスを実行できるように特定の敵を敵ポインター クラスに割り当てる必要があることです。
最近、C++ から C# に切り替えましたが、C# で同等のことを行うにはどうすればよいか考えています。C ++では、これを行うことができました:
Enemy *enemy;
enemy = new Enemy("Goblin", 20, 20);
C# では、ポインター メソッドとデリゲートを使用してみましたが、どちらも失敗しました。問題は、テキスト RPG に複数の敵がいて、戦闘プロセスを実行できるように特定の敵を敵ポインター クラスに割り当てる必要があることです。
C# には、C++ スタイルのポインターの代わりに参照があります。したがって、あなたの例では、次のようにします。
Enemy enemy; //enemy is a reference to an Enemy
enemy = new Enemy("Goblin", 20, 20); //the reference points to a Enemy instance in the heap
もう 1 つの興味深い違いは、スタックに格納できる一部のプリミティブ値型 ( 、、、、構造体、列挙型) を除いて、ほとんどすべてが参照であるということです。int
float
double
decimal
bool