码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • csharp开发日常之Activator.CreateInstance构造函数生成实例


    目录

    一、需求:项目中经常需要动态生成对象,而非采用new关键字方式,例如Java里面的根据类全限定名反射生成对象实例。

    二、方案:采用Activator.CreateInstance

    三、代码例子演示

            1、代码结构

            2、创建接口

    3、创建IObjcet接口的实现类

    3、Program.cs


    一、需求:项目中经常需要动态生成对象,而非采用new关键字方式,例如Java里面的根据类全限定名反射生成对象实例。

    二、方案:采用Activator.CreateInstance

    三、代码例子演示

            1、代码结构

            2、创建接口

    1. namespace Test.Console.Core.Interface
    2. {
    3. public interface IObjcet
    4. {
    5. void Put();
    6. void Put(string plus);
    7. }
    8. }

    3、创建IObjcet接口的实现类

    1. using Test.Console.Core.Interface;
    2. namespace Test.Console.Core
    3. {
    4. public class PlugPut : IObjcet
    5. {
    6. private string plugName = "";
    7. public string PlugName
    8. {
    9. get { return plugName; }
    10. set { plugName = value; }
    11. }
    12. public PlugPut() { }
    13. public PlugPut(string plusName)
    14. {
    15. this.PlugName = plusName;
    16. }
    17. public void Put()
    18. {
    19. System.Console.WriteLine("Default plug value is:" + plugName);
    20. }
    21. public void Put(string plus)
    22. {
    23. System.Console.WriteLine("Put plus value is:" + plus);
    24. }
    25. }
    26. }

    3、Program.cs

    System.Type.GetType("Test.Console.Core.PlugPut,Test.Console")中

    Test.Console.Core.PlugPut:是实现类的全限定名路径。

    Test.Console:是程序集名称。

    1. // See https://aka.ms/new-console-template for more information
    2. using Test.Console.Core.Interface;
    3. //用Activator.CreateInstance创建函数实例,默认的不带参数的构造函数
    4. IObjcet ojbi = (IObjcet)Activator.CreateInstance(System.Type.GetType("Test.Console.Core.PlugPut,Test.Console"), null);
    5. ojbi.Put();
    6. //用Activator.CreateInstance创建函数实例,并且是带参数的构造函数
    7. IObjcet ojbi2 = (IObjcet)Activator.CreateInstance(System.Type.GetType("Test.Console.Core.PlugPut,Test.Console"), new string[] { "seted new name" });
    8. ojbi2.Put();

  • 相关阅读:
    浅谈网络安全防守:从被动应对到主动管理的转变
    对于双列集合map的学习
    JMeter websocket接口测试
    javascript 文本框中的数据丢失格式,导致没有换行,显示成一行,flask不显示本地图片问题
    如何将两个或多个组件嵌入到一个组件中?
    上海亚商投顾:沪指震荡调整 转基因概念股逆势大涨
    CCC数字钥匙设计【BLE】--URSK管理
    计算机内存分配
    mysql数据库常见问题及解决办法
    JSTL 标签库
  • 原文地址:https://blog.csdn.net/qq_34207898/article/details/132714427
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号