手机版

系统调用实现思路详解 输入 网

时间:2021-08-31 来源:互联网 编辑:宝哥软件园 浏览:

前言

今天上班的过程中,久违的大学朋友发来信息,带着问题来找我。

他的需求是类型的动态添加,对我来说当然很容易。就用泛型。

然后,手举起刀就掉下来了,Demo写的如下:

我写了一个方法,其中T:class约束被强加在传入的T上,这么简单,为什么我的朋友不能呢?然而,事情并没有那么简单。

本来朋友的要求就是简单的把字符串转换成类型,有点难。据我所知,似乎没有像约定那样直接的方法。键入(字符串类型名)。

我突然想到,在做项目的过程中,可以把所有的程序集都拿出来,把每个程序集下的类型都拿出来,最后实现把程序中的所有类型都拿出来

Appdomain。当前域名。getassembly()。selectmany (a=a. gettypes())然后我们可以过滤的所有类型,并根据传入的字符串类型的typeName,命名出typeName被更改为type的元素吗?

实现方法

代码如下:

静态列表类型ConventToTypes(string[]typeName){ var type=AppDomain。CurrentDomain.GetAssemblies()。选择许多(a=a.GetTypes())。其中(u=typeName。包含(u.Name))。to list();返回类型;}实践证明是可行的,运行结果如下:

最后,通过筛选过程,“字符串到系统”。类型”已成功实现。

哈哈,我强迫自己在小伙伴面前推了一把。

中午在公司休息,整理这个方法主要是分享(在朋友面前装逼的快感)我解决问题的思路:当两种类型不能直接转换时,可以先尝试把这些类型拿出来,然后做一个条件筛选。如果筛选后发现结果,则转换成功,否则转换失败!

摘要

以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

版权声明:系统调用实现思路详解 输入 网是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。