当前位置: 首页 > news >正文

中文域名查询官网做seo用什么网站系统

中文域名查询官网,做seo用什么网站系统,丹徒网站建设平台,外贸网站建设公司流程图一、反射概念与Type类 1、程序在运行过程中#xff0c;可以查看其他程序集或本身程序集中的元数据的行为叫做反射。 程序集#xff1a;项目中所有代码以及嵌入式资源的集合。 元数据#xff1a;我们编写的程序以及程序内数据。 2、反射的作用#xff1a; 通过反射可以…一、反射概念与Type类 1、程序在运行过程中可以查看其他程序集或本身程序集中的元数据的行为叫做反射。 程序集项目中所有代码以及嵌入式资源的集合。 元数据我们编写的程序以及程序内数据。 2、反射的作用 通过反射可以读取程序集.dll、.exe)中代码内容 可以根据字符串类名来动态创建类的对象 可以动态获取对象中的信息方法、属性、字段 可以根据字符串方法名称来调用执行 3、反射的常用类 1) Type类设计用来包含类型的特性可以获取程序使用的类型的信息。可以获得一个类包含的成 员与方法。 2命名空间 using System.Reflection; //实体人员类 public class Person{public string Name;public int Age;private int _ID;//属性public int ID{get{return _ID;}set{_IDvalue;}}public DisplayID(){Console.WriteLine(_ID);}public DisplayName(){Console.WriteLine(Name);}public DisplayAge(){Console.WriteLine(Age);} } ​using System.Threading.Tasks; //反射的命名空间 class Demo(){public void Test1(){Person per new Person();Type tyPersonObjper.GetType(); //反射定义//显示类的名称Console.WriteLine(tyPersonObj.Name);//显示类所属的命名空间Console.WriteLine(tyPersonObj.Namespace);//显示类所属的程序集Console.WriteLine(tyPersonObj.Assembly);//获取类是否为公共、密封、私有Console.WriteLine(tyPersonObj.IsPublic);//TrueConsole.WriteLine(tyPersonObj.IsSealed);//FalseConsole.WriteLine(tyPersonObj.IsPrimitive);//False//获取字段GetFields()方法FieldInfo[] ingoArraytyPersonObj.GetFields();Foreach(FieldInfo item in ingoArray){Console.WriteLine(item.Name);}//获取属性GetProperties()方法PropertyInfo[] propArraytyPersonObj.GetProperties();Foreach(PropertyInfo item in propArray){Console.WriteLine(item.Name);}//获取方法GetMethods()方法MethodInfo[] metgodArraytyPersonObj.GetMethods();Foreach(MethodInfo item in metgodArray){Console.WriteLine(item.Name);}}static void Main(string[] args){Demo objnew Demo();obj.Test1();} } 二、程序集Assembly与动态调用 1) Assembly类得到一个程序集中的反射信息 2使用反射技术,来动态调用 缺点运行速度慢 优点可以使得类对象之间的调用关系在“运行期”进行低耦合调用可以随着配置文件的改变进行改变。 3程序集中的两种存在方式 *.dll形式存在的程序集不能直接运行是“类库” *.exe的程序集可以点击直接运行 如何加载程序集 Assembly.Load();//不推荐使用 Assembly.LoadFrom“程序集的完整路径名称” //学习Assembly程序集 using System.Reflection; class Demo{public void Test1(){//通过路径直接得到程序集的对象Assembly assObjAssembly.LoadFrom(E:\System.dll);//通过程序及得到程序集中所有的类Type[] typArrayassObj.GetTypes();foreach(Type item in typArray){Console.WriteLine(item.Name);}//根据类名与方法名字符串动态调用Type typeassObj.GetType(类名字符串);//包含命名空间的类名//根据type创建对象Object objActivator.CreateInstance(type);//动态调用类的无参构造方法//获得方法信息//Type[] typeArrayWuthPara{type(int)};//重载有参数确定方法重载中有参数MethodInfo methodtype.GetMethod(方法名称字符串);//如果需要重载则需要在后面添加一个新 //的参数new Type[0],表示重载无参重 //载有参则调用新定义的Type数组名 //typeArrayWuthPara//调用有参时添加的语句//object[] objArraynew object[1];//object[0]参数;//调用方法method.Invoke(objnull);//null表示没有参数如果调用有参方法null需要换成object数组名}static void Main(string[] args){Demo objnew Dmeo();Obj.Test1();} } 反射调用私有方法与属性 class Person{private int _ID;//属性public int ID{get{return _ID;}set{_IDvalue;}}public void DisplayPrivate(){Console.WriteLine(person类私有方法一般情况不可能调用);} } ​ using System.Reflection; class Demo{//调用私有方法public void Test1(){string strClassNamePerson;string strMethodNameDisplayPrivate;Assembly assObjAssembly.LoadFrom(strClassName);//根据类名与方法名字符串动态调用Type typeassObj.GetType(类名字符串);//包含命名空间的类名//根据type创建对象Object objActivator.CreateInstance(type);//动态调用类的无参构造方法MethodInfo methodtype.GetMethod(strMethodName,BindingFlags.NonPublic|BindingFlags.Instance);method.Invoke(objnull);}//调用属性public void Test2(){string strClassNamePerson;//类的名称string strPropertydNameID;//属性的名称Assembly assObjAssembly.LoadFrom(strClassName);//根据类名与方法名字符串动态调用Type typeassObj.GetType(类名字符串);//包含命名空间的类名//根据type创建对象Object objActivator.CreateInstance(type);//动态调用类的无参构造方法//获得属性PropertyInfo proptype.Getproperty(strPropertydName);//设置属性prop.SetValue(obj,100);//得到属性值string resultprop.GetValue(obj,null).ToString();Console.WriteLine(result);}static void Main(string[] args){Demo objnew Dmeo();Obj.Test1();Obj.Test2();} } 三、Type深入方法 bool IsAssignableFrom(Type c) //用来判断一个类或接口是否另一个类的父类或接口 bool IsInstanceOfType(object o)//判读对象o 是否是当前类或者子类的实例或者实现本接口 bool IsSubclassOf(Type c)//判断当前类是否为类c 参数的子类 //父类 public class Men{} //子类 public class ZhangSan:Men,ICanSpeak{} //普通类 无继承 public class Dog{} //接口 interface ICanSpeak{} //学习Type更多的方法 //1.判断一个类是否为参数类的父类或者接口 // // // using System.Reflection; class Demo{//bool IsAssignableFrom(Type c) //用来判断一个类或接口是否另一个类的父类或接口public void Test1(){Type typeMentypeof(Men);Type typeZhangSantypeof(ZhangSan);Type typeDogtypeof(Dog);Type typeICanSpeaktypeof(ICanSpeak);//判断Men是ZhangSan的父类吗Console.WriteLine(typeMen.IsAssignableFrom(typeZhangSan));//true//判断Men是Dog的父类吗Console.WriteLine(typeMen.IsAssignableFrom(typeDog));//False//判断ICanSpeak是否为ZhangSan的接口Console.WriteLine(typeICanSpeak.IsAssignableFrom(typeZhangSan));//true//判断ICanSpeak是否为Dog的接口Console.WriteLine(typeICanSpeak.IsAssignableFrom(Dog));//false}//bool IsInstanceOfType(object o)//判读对象o 是否是当前类或者子类的实例或者实现本接口public void Test2(){Type typeMentypeof(Men);Type typeICanSpeaktypeof(ICanSpeak);Men MenObjnew Men();ZhangSan zhangsanObjnew ZhangSan();Dog dogObjnew Dog();//typeMen是MenObj的实例吗Console.WriteLine(typeMen.IsInstanceOfType(MenObj));//TConsole.WriteLine(typeMen.IsInstanceOfType(zhangsanObj));//TConsole.WriteLine(typeMen.IsInstanceOfType(dogObj));//FConsole.WriteLine(typeICanSpeak.IsInstanceOfType(zhangsanObj));//TConsole.WriteLine(typeICanSpeak.IsInstanceOfType(MenObj));//F}//bool IsSubclassOf(Type c)//判断当前类是否为类c 参数的子类 public void Test3(){Type typeMentypeof(Men);Type typeZhangSantypeof(ZhangSan);Type typeDogtypeof(Dog);Console.WriteLine(typeZhangSan.IsSubclassOf(typeMen)); //TConsole.WriteLine(typeDog.IsSubclassOf(typeMen));//F}static void Main(string[] args){Demo objnew Demo();obj.Test1();obj.Test2();obj.Test3();} } 四、预定义特性Attribute 1.特性Attribute是一种允许我们向程序集增加元数据的语言结构提供了一种将声明性信息与代码关联起来的途径。 2.Obsolete特性将过时的方法与类标注为“过时”过期的且在编译时显示警告信息。 3.Conditional特性一般用于程序开发过程中的“测试方法”的编写。测试阶段定义“测试的宏”发布商业版本则取消宏即可。 /*学习特性一系统特性1Obsolete特性即过时特性2Conditional特性 3Serializable 声明结构可以被序列化4NonSerialized 声明结构不可以被序列化5DLLImport 声明是非托管代码实现的二、自定义特性三、条件编译1.特性Conditional 适用条件针对方法2.使用预编译”指令 #if debug  表达式#else表达式#endif */ #define OnlyTest //定义一个宏表示允许Conditional特性标识的测试方法允许 #define debug //定义一个宏表示调试阶段debug允许运行但else不允许允许 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Therading.Tasks; using System.Reflection;//反射的命名空间 using System.Diagnostics;//Conditional特性的命名空间Obsolete不受影响 namespace 学习特性{class Demo1{//学习Obsolete如果加参数True,旧方法不可用会引发错误不加则默认false仅提醒自定义的字符串[Obsolete(该方法已过时请用对应的NewMethod进行替换true)]public void OldMethod(){Console.WriteLine(这是旧的方法);}public void NewMethod(){Console.WriteLine(这是新的方法);}public void Test1(){//OldMethod();NewMethod();}//学习Conditional 条件执行默认不执行[Conditional(OnlyTest)]public void TestMethod(){Console.WriteLine(这是测试方法);}public void Method1(){Console.WriteLine(这是方法1);}public void Method2(){Console.WriteLine(这是方法2);}//条件编译public void Test3(){Console.WriteLine(这是条件编译);Console.WriteLine(aaa); #if debugConsole.WriteLine(bbb); #elseConsole.WriteLine(ccc); #endifConsole.WriteLine(ddd);}public void Test2(){TestMethod();Method2;TestMethod();Method1;TestMethod();Method1;Method2;Method1;}static void Main(string[] args){Demo1 objnew Demo1();obj.Test1();obj.Test2();obj.Test3();}} }
http://www.dnsts.com.cn/news/180836.html

相关文章:

  • 杭州网站备案做美食网站的项目背景
  • 传奇辅助网站怎么做百度做广告多少钱
  • 做下载网站用阿里云的什么产品月子中心网站设计
  • 网站模版下载网站软件开发招聘
  • 邯郸市住房和城乡建设网站wordpress 文章转义
  • 南京专业制作网站快手刷粉网站推广
  • 网站开发合同的时间期限界定校园推广的方式有哪些
  • 网站跟别的做的一样的农村自建房设计图纸
  • 龙港做网页网站制作官方网站下载安装云支付
  • 芜湖网站建设怎么做网站开发平台选择
  • 学校网站开发模式德阳市建设管理一体化平台网站
  • 建站网址不安全茶叶建设网站的优势
  • 桐城建设局网站广东知名网站建设
  • 珠海网站建设杰作东莞网站推广怎么做
  • 免费可信网站认证摄影设计英文
  • 石家庄做网站 vtkjwordpress 主题面板
  • 网站内容设计基本原则毕业设计答辩网站开发原理
  • 网站开发 图片储存网站做搜索引擎的作用是什么
  • 顺德建设局网站wordpress实现论坛功能
  • 建网站平台安全性文山市住房和城乡建设局网站
  • 网站刷排名工具wordpress打开速度很慢
  • 服务器搭建网站能ping t网站开发中网页之间的链接形式有什么
  • 网站注册平台怎么注册做图片站 把图片放到其它网站可以吗
  • 哈尔滨网站建设有哪些中小企业做网站推广
  • 收费底的网站有吗免费代理ip最新
  • 泉州专业网站设计技术公司做我女朋友好不好手机网站
  • 非你莫属做网站的卖网币起家的影响网站收录的因素
  • 手机网站制作代理商辽宁建设厅
  • 云南网站备案查询网站移动端是什么问题
  • wordpress实现伪静态百度seo发帖推广