Memo, write a C # version.
Using system;using system.collections.generic;using system.linq;using system.text;using System.Threading.Tasks; Namespace cs_test{public class Basebullet {public float x; public float y; public int color; public string name; Public Basebullet (string name, int color) {this.name = name; This.color = color; } public virtual void say (String str) {Console.WriteLine (str); Console.WriteLine ("Name is" + name); Console.WriteLine ("Color is" + color); }} public class Bullettype1:basebullet {public BulletType1 (string name, int color): base (name, color) {} public override void Say (String str) {Base.say (str); Console.WriteLine ("Shoot from BulletType1"); }} public class Bullettype2:basebullet {public BulletType2 (string name, int color): base (name, color) { } public override void Say (String str) {Base.say (str); Console.WriteLine ("Shoot from BulletType2"); }} class Program {static void Main (string[] args) {int id = 1; String className = "Cs_test.bullettype" + ID. ToString (); System.Type t = System.Type.GetType (className); Basebullet B1 = activator.createinstance (t, "John", 1) as Basebullet; B1.say ("Hello"); ++id; ClassName = "Cs_test.bullettype" + ID. ToString (); t = System.Type.GetType (className); Basebullet B2 = activator.createinstance (t, "Sam", 2) as Basebullet; B2.say ("Goodbye"); } }}
C # Runtime instantiates class objects by string