ASP,2024阿里巴巴前端面试真题解析,前端工程师必备知识

Type t = n.GetType();

foreach (MemberInfo mi in t.GetMembers())

{

Console.WriteLine(“{0}\t{1}”,mi.MemberType,mi.Name);

}

**Type类的属性:

**        Name 数据类型名

FullName 数据类型的完全限定名(包括命名空间名)

Namespace 定义数据类型的命名空间名

IsAbstract 指示该类型是否是抽象类型

IsArray   指示该类型是否是数组

IsClass   指示该类型是否是类

IsEnum   指示该类型是否是枚举

IsInterface    指示该类型是否是接口

IsPublic 指示该类型是否是公有的

IsSealed 指示该类型是否是密封类

IsValueType 指示该类型是否是值类型

**Type类的方法:

**        GetConstructor(), GetConstructors():返回ConstructorInfo类型,用于取得该类的构造函数的信息

GetEvent(), GetEvents():返回EventInfo类型,用于取得该类的事件的信息

GetField(), GetFields():返回FieldInfo类型,用于取得该类的字段(成员变量)的信息

GetInterface(), GetInterfaces():返回InterfaceInfo类型,用于取得该类实现的接口的信息

GetMember(), GetMembers():返回MemberInfo类型,用于取得该类的所有成员的信息

GetMethod(), GetMethods():返回MethodInfo类型,用于取得该类的方法的信息

GetProperty(), GetProperties():返回PropertyInfo类型,用于取得该类的属性的信息

可以调用这些成员,其方式是调用Type的InvokeMember()方法,或者调用MethodInfo, PropertyInfo和其他类的Invoke()方法。

查看类中的构造方法:

NewClassw nc = new NewClassw();

**Type t = nc.GetType();

ConstructorInfo[] ci = t.GetConstructors();**    //获取类的所有构造函数

foreach (ConstructorInfo c in ci) //遍历每一个构造函数

{

ParameterInfo[] ps = c.GetParameters();    //取出每个构造函数的所有参数

foreach (ParameterInfo pi in ps)   //遍历并打印所该构造函数的所有参数

{

Console.Write(pi.ParameterType.ToString()+" “+pi.Name+”,");

}

Console.WriteLine();

}

**用构造函数动态生成对象:

**        Type t = typeof(NewClassw);

**Type[] pt = new Type[2];

**        pt[0] = typeof(string);

pt[1] = typeof(string);

//根据参数类型获取构造函数

**ConstructorInfo ci = t.GetConstructor(pt);

**        //构造Object数组,作为构造函数的输入参数

object[] obj = new object[2]{“grayworm”,“hi.baidu.com/grayworm”};

//调用构造函数生成对象

object o = ci.Invoke(obj);           //调用生成的对象的方法测试是否对象生成成功

//((NewClassw)o).show();

**用Activator生成对象:

**        Type t = typeof(NewClassw);

//构造函数的参数

object[] obj = new object[2] { “grayworm”, “hi.baidu.com/grayworm” };

//用Activator的CreateInstance静态方法,生成新对象

**object o = Activator.CreateInstance(t,“grayworm”,“hi.baidu.com/grayworm”);

**        //((NewClassw)o).show();

**查看类中的属性:

**        NewClassw nc = new NewClassw();

Type t = nc.GetType();

**PropertyInfo[] pis = t.GetProperties();

**        foreach(PropertyInfo pi in pis)

{

Console.WriteLine(pi.Name);

}       **查看类中的public方法:

**        NewClassw nc = new NewClassw();

Type t = nc.GetType();

**MethodInfo[] mis = t.GetMethods();

**        foreach (MethodInfo mi in mis)

{

Console.WriteLine(mi.ReturnType+" "+mi.Name);

}

**查看类中的public字段

**        NewClassw nc = new NewClassw();

Type t = nc.GetType();

FieldInfo[] fis = t.GetFields();

foreach (FieldInfo fi in fis)

{

Console.WriteLine(fi.Name);

} (http://hi.baidu.com/grayworm)

**用反射生成对象,并调用属性、方法和字段进行操作

**        NewClassw nc = new NewClassw();

Type t = nc.GetType();

object obj = Activator.CreateInstance(t);

//取得ID字段

FieldInfo fi = t.GetField(“ID”);

//给ID字段赋值

fi.SetValue(obj, “k001”);

//取得MyName属性

PropertyInfo pi1 = t.GetProperty(“MyName”);

//给MyName属性赋值

pi1.SetValue(obj, “grayworm”, null);

PropertyInfo pi2 = t.GetProperty(“MyInfo”);

pi2.SetValue(obj, “hi.baidu.com/grayworm”, null);

//取得show方法

MethodInfo mi = t.GetMethod(“show”);

//调用show方法

mi.Invoke(obj, null);

System.Reflection.Assembly类

Assembly类可以获得程序集的信息,也可以动态的加载程序集,以及在程序集中查找类型信息,并创建该类型的实例。

使用Assembly类可以降低程序集之间的耦合,有利于软件结构的合理化。

**通过程序集名称返回Assembly对象

Assembly ass = Assembly.Load(“ClassLibrary831”);

通过DLL文件名称返回Assembly对象

Assembly ass = Assembly.LoadFrom(“ClassLibrary831.dll”);

通过Assembly获取程序集中类

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道

HTML

  • HTML5有哪些新特性?

  • Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?

  • 如何实现浏览器内多个标签页之间的通信?

  • ⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?

  • 简述⼀下src与href的区别?

  • cookies,sessionStorage,localStorage 的区别?

  • HTML5 的离线储存的使用和原理?

  • 怎样处理 移动端 1px 被 渲染成 2px 问题?

  • iframe 的优缺点?

  • Canvas 和 SVG 图形的区别是什么?

JavaScript

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 问:0.1 + 0.2 === 0.3 嘛?为什么?

  • JS 数据类型

  • 写代码:实现函数能够深度克隆基本类型

  • 事件流

  • 事件是如何实现的?

  • new 一个函数发生了什么

  • 什么是作用域?

  • JS 隐式转换,显示转换

  • 了解 this 嘛,bind,call,apply 具体指什么

  • 手写 bind、apply、call

  • setTimeout(fn, 0)多久才执行,Event Loop

  • 手写题:Promise 原理

  • 说一下原型链和原型链的继承吧

  • 数组能够调用的函数有那些?

  • PWA使用过吗?serviceWorker的使用原理是啥?

  • ES6 之前使用 prototype 实现继承

  • 箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?

  • 事件循环机制 (Event Loop)

  • setTimeout(fn, 0)多久才执行,Event Loop

  • 手写题:Promise 原理

  • 说一下原型链和原型链的继承吧

  • 数组能够调用的函数有那些?

  • PWA使用过吗?serviceWorker的使用原理是啥?

  • ES6 之前使用 prototype 实现继承

  • 箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?

  • 事件循环机制 (Event Loop)

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值