C#运行时通过字符串实例化类对象
备忘,记个C#版本。
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#运行时通过字符串实例化类对象的更多相关文章
- 创建java类并实例化类对象
创建java类并实例化类对象例一1.面向对象的编程关注于类的设计2.设计类实际上就是设计类的成员3.基本的类的成员,属性(成员变量)&方法 面向对象思想的落地法则一:1.设计类,并设计类的成员 ...
- Javassist之使用字节码在运行时生成新的类 01
介绍 Javassist是一个开源的分析.编辑和创建Java字节码的类库.是由东京工业大学的数学和计算机科学系的 Shigeru Chiba (千叶 滋)所创建的.它已加入了开放源代码JBoss 应用 ...
- 动态加载Dll时,通过Type生成类对象
原文:动态加载Dll时,通过Type生成类对象 转:http://www.cnblogs.com/zfanlong1314/p/4197383.html "反射"其实就是利用程序集 ...
- 字节码编程,Javassist篇三《使用Javassist在运行时重新加载类「替换原方法输出不一样的结果」》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 通过前面两篇 javassist 的基本内容,大体介绍了:类池(ClassPool) ...
- JVM运行时数据区--纵向补充--对象的实例化内存布局与访问定位
对象的实例化 创建对象的方式 1.new:最常见的方式(本质是构造器) 变形1 : Xxx的静态方法 变形2 : XxBuilder/XxoxFactory的静态方法 2.Class的newInsta ...
- Delphi 通过字符串实例化类
通过字符串创建窗体类对象 1.需要在程序初始化的时候将类注册,注册到对象 RegGroups:(TRegGroups)中,以便查找. 注册类使用的函数:RegisterClass ,窗体初始化操作放在 ...
- 转载: Java虚拟机:运行时内存数据区域、对象内存分配与访问
转载: https://blog.csdn.net/a745233700/article/details/80291694 (虽然大部分内容都其实是深入理解jvm虚拟机这本书里的,不过整理的很牛逼 ...
- 在运行时生成C# .NET类
本文译自:Generating C# .NET Classes at Runtime 作者:WedPort 在我的C#职业生涯中,有几次我不得不在运行时生成新的类型.希望把它写下来能帮助有相同应 ...
- 实例化类对象及类的属性set方法使用不当
类的属性中set方法操作数据库,新建类对象并给其赋值时总会触发该set方法,而导致不期望的错乱: 库位类Storage,其中传感器状态SensorStatus和逻辑状态LogicStatus有一定的关 ...
随机推荐
- json字符串和json对象之间的转化
一.json字符串转化为json对象 二.json对象转化为json字符串
- 简易机器学习代码(LR,Kmeans,NN,RNN)
Logistic Regression 特别需要注意的是 exp 和 log 的使用. sigmoid 原始表达式为 1 / (1+exp(-z)),但如果直接使用 z=-710,会显示 overfl ...
- python学习Day13 函数的嵌套定义、global、nonlocal关键字、闭包及闭包的运用场景、装饰器
复习 1.函数对象:函数名 => 存放的是函数的内存地址1)函数名 - 找到的是函数的内存地址2)函数名() - 调用函数 => 函数的返回值 eg:fn()() => fn的返回值 ...
- CHD 5.15 安装 Kylin
这里主要参考官网安装单机案例,并写入到脚本中.具体请看如下: 1.说明 这里采用的是root用户安装,但是运行时需要改一些配置,不然没有权限 2.安装 ...
- win10卸载IE11后从新安装
win10卸载IE11后想要从新安装,运气不好的话各种坑安装不上,运气好就不说了.这里笔者在知乎看到一种方法,亲测可用,记录如下: 设置--应用--应用和功能--管理可选功能--添加功能--Inter ...
- 【笔记】Python基础七:正则表达式re模块
一,介绍 正则表达式(RE)是一种小型的,高度专业化的编程语言,在python中它内嵌在python中,并通过re模块实现.正则表达式模式被编译成一系列的字节码,然后由C编写的匹配引擎执行. 字符匹配 ...
- (Solved) Nexiq USB link with CAT ET: connection error 149
User issue: I'm using a Nexiq USB link with CAT ET 2011b and I need some help with connection settin ...
- Nancy.Net之旅-初次见面
Welcome Nancy 首先,欢迎来到Nancy!我们的主要灵感是Ruby的Sinatra框架,因此Nancy以Frank Sinatra的女儿名字命名.许多人想知道NancyFx中的Fx是什 ...
- linux命令——wc
wc 统计文件里面有多少单词,多少行,多少字符. wc语法 [root@www ~]# wc [-lwm] 选项与参数: -l :仅列出行: -w :仅列出多少字(英文单字): -m :多少字符: 默 ...
- max_delay/min_delay和input_delay/output_delay
今天在使用DC设置随路时钟的时候发现里两个比较容易混淆的设置:max_delay/min_delay和input_delay/output_delay. 1)max_delay/min_delay设置 ...