博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将字符串转化为某种类型
阅读量:4322 次
发布时间:2019-06-06

本文共 1011 字,大约阅读时间需要 3 分钟。

   //将字符串转化为type型.

    private object parse(string s, Type t)
    {
        //如果字符串是一个string,直接返回.
        if (t.IsAssignableFrom(typeof(string))) return s;
        //如果字符串是一个数组,那么将其解析为数组并返回.
        if (t.IsArray) return parseArray(s, t);
        //构造并调用tpe的Parse方法.
        BindingFlags flags = BindingFlags.Static | BindingFlags.FlattenHierarchy | BindingFlags.IgnoreCase | BindingFlags.Public;
        MethodInfo parseMethod = t.GetMethod("Parse", flags, nullnew Type[] { typeof(string) }, null);
        if (parseMethod != null && parseMethod.ReturnType == t)
        {
            return parseMethod.Invoke(nullnew object[] { s });
        }
        else
        {
            throw new ApplicationException("Can't parse " + t.FullName + " because it doesn't have a static Parse() method");
        }
    }
    //将字符串转化为某种类型的数组.
    private object[] parseArray(string s, Type arrayType)
    {
        string[] strings = s.Split(new char[] { ',' });
        object[] result = new object[strings.Length];
        for (int i = 0; i < strings.Length; i++)
        {
            result[i] = parse(strings[i], arrayType.GetElementType());
        }
        return result;
    }

转载于:https://www.cnblogs.com/robyn/p/3729321.html

你可能感兴趣的文章
浅谈模块化
查看>>
(转)arguments.callee移除AS3匿名函数的侦听
查看>>
onNewIntent调用时机
查看>>
MYSQL GTID使用运维介绍(转)
查看>>
学习新语言等技能的历程
查看>>
04代理,迭代器
查看>>
解决Nginx+PHP-FPM出现502(Bad Gateway)错误问题
查看>>
Java 虚拟机:互斥同步、锁优化及synchronized和volatile
查看>>
2.python的基本数据类型
查看>>
python学习笔记-day10-01-【 类的扩展: 重写父类,新式类与经典的区别】
查看>>
查看端口被占用情况
查看>>
浅谈css(块级元素、行级元素、盒子模型)
查看>>
Ubuntu菜鸟入门(五)—— 一些编程相关工具
查看>>
PHP开源搜索引擎
查看>>
12-FileZilla-响应:550 Permission denied
查看>>
ASP.NET MVC 3 扩展生成 HTML 的 Input 元素
查看>>
LeetCode 234. Palindrome Linked List
查看>>
编译HBase1.0.0-cdh5.4.2版本
查看>>
结构体指针
查看>>
迭代器
查看>>