C#反射学习
2021/4/23 20:26:58
本文主要是介绍C#反射学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这天都在学习c#的反射原理,网上的资料很多。以前听说反射也仅仅是在《大话设计模式》里面直到一点点,了解不深。
开始我还不知道反射到底有什么好处,后来我才知道利用反射我们可以在运行时的时候通过变量来实例化类的实例。可以有效避免了很多的逻辑判断。
以下是我的测试的代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection; //反射需要引用的命名空间
namespace 反射原理
{
class Program
{
static void(string[] args)
{
string str = Console.ReadLine();
Icon i = ConFactory.ReturnCon(str);
i.OutputStr();
Console.ReadKey();
}
}
class ConFactory
{
private static readonly string AssemblyName = "反射原理"; //程序及
public static Icon ReturnCon(string str) //str参数是指类名
{
string ClassName = AssemblyName + "." + str;
return (Icon)Assembly.Load(AssemblyName).CreateInstance(ClassName); //生成特定类的实例,然后转换为接口返回
}
}
interface Icon
{
void OutputStr();
}
class PersonCon : Icon
{
public void OutputStr()
{
Console.WriteLine("PersonCon");
}
}
class WorldCon : Icon
{
public void OutputStr()
{
Console.WriteLine("WorldCon");
}
}
}
这样我们可以通过读取外部的配置文件来对我们的变量进行赋值,然后通过它来实例化特指的类。这招在多数据库的应用特别有效。我们只需要修改配置文件就可以达到更换数据库的目的。有效降低了类之间的耦合,更灵活,更容易修改…
这篇关于C#反射学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具