C# Convert.ChangeType()】的更多相关文章

在做一个ORMapping功能的时候发现,Convert.ChangeType不能处理nullable类型,比如int?. 解决办法也很简单,贴出完整的代码(大部分代码来自网络),注意下面代码没经过完整测试,不要直接用在项目里: public delegate void SetValue<T>(T value); public static class ORMapping<T> where T : class, new()    {        private static De…
];         object innerValue = ChangeType(value, innerType);         return Activator.CreateInstance(type, new object[] { innerValue });     }     if (value is string && type == typeof(Guid)) return new Guid(value as string);     if (value is stri…
经常要传入参数包,当时一直是用泛型+ChangeType解决的.测试了下,看来这样确实慢了. 另外,可能都会认为Release发布之后会被优化掉.但测试了Release和Debug结果一样慢,比较失望. public void Start<T>(T arg) { var tmp = (Class1ArgPack)Convert.ChangeType(arg, typeof(Class1ArgPack)); //Do something } 100w次for循环(仅供参考) 用例 Struct耗…
static public object ChangeType(object value, Type type) { if (value == null && type.IsGenericType) return Activator.CreateInstance(type); if (value == null) return null; if (type == value.GetType()) return value; if (type.IsEnum) { if (value is s…
https://www.cnblogs.com/patrickyu/p/3211115.html 在做一个ORMapping功能的时候发现,Convert.ChangeType不能处理nullable类型,比如int?. 解决办法也很简单,贴出完整的代码(大部分代码来自网络),注意下面代码没经过完整测试,不要直接用在项目里: public delegate void SetValue<T>(T value); public static class ORMapping<T> whe…
Convert.ChangeType() 将未知类型转换为已知类型 ; object result = Convert.ChangeType(content, typeof(int)); 其他常用的转换方法举例: 1.Convert.ToInt32(content) 2.int i=Int32.Parse(content) 3.int i=0;nt.TryParse(content,out i) 4.int i=(Int32)content 5.int? i=content as Int32 (…
/// <summary> /// add by wolf /// </summary> public static class ExtendObject { public static bool IsTargetType<T>(this object source) where T : IConvertible { Type targetType = typeof(T); var tryParse = targetType.GetMethod("TryPar…
[分页2]    public dynamic PageQuery()        {              :  : ; i < data.Length; i++)             {                 sBuilder.Append(data[i].ToString("x2"));//字符串格式控制符 x 为十六进制 2每次两位数             }//0xA.0x1A,这样看起来不整齐,为了好看,可以指定"X2",这样…
以下代码会出问题: public static T Protect<T>(Func<T> func, UserLevel pageRole) where T : ActionResult, new(){    try    {        return func();    }    catch (Exception err)    {        if (typeof(T) is JsonResult)        {            return (T)new Js…
系列目录 前言 听标题的名字似乎是一个非常牛X复杂的功能,但是实际上它确实是非常复杂的,我们本节将演示如何实现对数据,进行组合查询(数据筛选) 我们都知道Excel中是如何筛选数据的.就像下面一样 他是一个并的关系,我们现在要做的也是这样的效果,下面我们将利用EasyUI的DataGrid为例来扩展(就算是其他组件也是可以的,同样的实现方式!) 实现思路 前台通过查询组合json 后台通过反射拆解json 进行组合查询 虽然短短3点,够你写个3天天夜了 优点:需要从很多数据中得到精准的数据,通常…
最近在修改维护以前的webform项目(维护别人开发的.....)整个aspx没有用到任何的控件,这个我也比较喜欢不用控件所以在提交信息的时候需要自己手动的去Request.QueryString[]或者Request.Form[]去获取,转型,判定等等觉得这样子的代码写多了不甚其烦,就在想能不能自动获取,解析这些参数成我需要的数据实体呢,当然是可以的这里我用反射根据参数的Key与实体的PropertyName进行对比,类型转换赋值给实体 public static T NameValues2E…
WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好. 先贴一下, 网上给的常用方法吧. 方法一:(改配置法) 找到Global.asax文件,在Application_Start()方法中添加一句: protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Config…
在项目常常要和数据表格打交道. 现在BS的通常做法都是前端用一个js的Grid控件, 然后通过ajax的方式从后台加载数据, 然后将数据和Grid绑定. 数据往往不是一页可以显示完的, 所以要加分页:然后就是根据关键字段做排序, 做筛选过滤. 作为后端人员, 要考虑的是如何优雅的实现分页.排序.筛选的功能. 本文先谈谈筛选. 因为分页.排序.筛选这3个动作, 一定是先处理筛选的——筛选后的结果再去排序, 然后再做分页 , 才有意义. 筛选首先要考虑如下两个问题: 1) 字段类型 2) 比较方式…
为大家分享一下个人的一个Utils系统帮助类,可能有些现在有新的技术替代,自行修改哈~ 这个帮助类主要包含:对象转换处理 .分割字符串.截取字符串.删除最后结尾的一个逗号. 删除最后结尾的指定字符后的字符. 生成指定长度的字符串. 生成日期随机码. 生成随机字母或数.字 截取字符长度. 对象<-->JSON 4.0使用.  对象<-->JSON 2.0使用litjson插件.  DataTable<-->JSON. List<--->DataTable. 清…
源码发布 搞了一个下午,终于搞定了这个号称中国的github...以后源码直接在这里发布了(github实在用不来,英文实在太烂了) https://code.csdn.net/jy02305022/blqw-json 相关回顾 一种简单,轻量,灵活的C#对象转Json对象的方案 一种简单,轻量,灵活的C#对象转Json对象的方案(续) 废话 自从上次发表了Json序列化的方案之后,已经整整一个月了. 原本是想序列化写完马上开始写反序列化的,但是来看了大家的回复之后得到了很多启示,所以这一个月直…
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能.网上的例子倒也不少,但总是觉得缺点什么.比如读取xml文件之后该如何处理?看到的文章基本上都是手动创建一个目标类的实例,然后手动从读取的XML文件的内容中给刚才创建的目标类实例相关字段赋值.缺点什么呢?对嘞,感觉上不够简单和智能. 正所谓驱动科技发展的原因就是懒,为了使我们的小工具能够傻瓜到只需要…
由来 话说这个功能想法由来与java的Hibernate功能,我需要一个类和数据库映射,很简单的写一个实体类简单配置一下就ok了, 很是方便, package com.game.po.log; import com.game.engine.utils.Config; import com.game.po.player.Role; import com.game.structs.player.Player; import java.io.Serializable; import javax.per…
以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展datarow转实体类,也可以搭配dapper.net实现更强大的功能. /// <summary> /// 通用数据库访问类,支持多种数据库,无直接依赖某个数据库组件 /// 作者:Zuowenjun /// 日期:2016-6-3(修订:2016-10-6) /// </summary>…
上一篇<分享在winform下实现模块化插件编程>已经实现了模块化编程,但我认为不够完美,存在以下几个问题: 1.IAppContext中的CreatePlugInForm方法只能依据完整的窗体类型名称formTypeName来动态创建窗体对象,调用不够方便,且该方法创建的窗体不受各模块注册窗体类型AppFormTypes限制,也就是可以创建任何FORM,存在不确定性: 2.动态创建的窗体对象无法直接对其公共属性或公共方法进行调用 3.主应用程序中的LoadComponents方法是通过指定文…
在web开发过程中,有时候为了数据传输的方便,比如:后台需要更新前端的ViewModel,此时我们定义一个与前端ViewModel结构一样的DTO对象,从数据层获取数据后,将数据封装成DTO然后序列化为json传回前端,由于我正在开发的项目中的Model是用DataSet来实现的,不是纯粹的面向对象(如果Model是对象的话可以用AutoMapper来实现转换),所以从数据层获取的都是DataSet或DataTable,这时需要将DataTable转换为DTO对象,DTO对象的属性与DataTa…
本文版权归博客园和作者吴双本人共同所有,转载和爬虫,请注明原文地址.http://www.cnblogs.com/tdws/p/5815735.html 写在前面 这不是教程,分享而已,也欢迎园友们多提建议和指正.关于更多详细介绍,请到github上看Docs,下面附上地址. 关于Redis基础控制它台操作有疑问的,欢迎阅读本人Redis系列命令拾遗分享 http://www.cnblogs.com/tdws/tag/NoSql/ 如今StackService.Redis已经转向商业版本.4.0…
在做系统的时候,经常遇到前台录入一大堆的查询条件,然后点击查询提交后台,在Controller里面生成对应的查询SQL或者表达式,数据库执行再将结果返回客户端. 例如如下页面,输入三个条件,日志类型.开始和结束日期,查询后台系统操作日志,并显示. 这种类似页面在系统中还是比较多的,通常情况下,我们会在cshtml中放上日志类型.开始.结束日期这三个控件,controller的action有对应的三个参数,然后在action.逻辑层或者仓储层实现将这三个参数转换为linq,例如转成c=>c.Beg…
[1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的断言方法分离成为接口,以便于扩展,例如现在可以支持切换测试框架(实现IAssertInstance接口,并修改AssertCommon_Editable.cs中的DEFAULT_INSTANCE为新的对象),然后就是增加对xml一些操作的支持.尽管如此,但并不是完全遵循OCP,可以说对扩展开放,对修…
前言 通过前两篇的介绍,我们知道要执行页面对象的方法,核心就是反射,是从请求获取参数并执行指定方法的过程.实际上这和asp.net mvc框架的核心思想很类似,它会解析url,从中获取controller和action名称,然后激活controller对象,从请求获取action参数并执action.在web form平台上,我们把方法写在.aspx.cs中,要实现的就是在页面对象还未生成的情况下,执行指定的方法,然后返回结果. 我们先看实现后几个调用例子,这些功能也可以组合使用: [AjaxM…
前言 Asp.net WebForm 和 Asp.net MVC(简称MVC) 都是基于Asp.net的web开发框架,两者有很大的区别,其中一个就是MVC更加注重http本质,而WebForm试图屏蔽http,为此提供了大量的服务器控件和ViewState机制,让开发人员可以像开发Windows Form应用程序一样,基于事件模型去编程.两者各有优缺点和适用情景,但MVC现在是许多Asp.net开发者的首选. WebForm是建立在Asp.net的基础上的,Asp.net提供了足够的扩展性,我…
/// <summary> /// 类说明:RandHelper类,用来实现取随机 /// 编码日期:2015-12-29 /// 编 码 人:里程碑 /// 修改日期:2015-12-29 /// 版 本 号:1.0 /// </summary> using System; using System.Collections.Generic; using System.Text; namespace DotNet.Utilities { /// <summary> //…
operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用2种方式,隐式转换(implicit)和显示转换(explicit) public class OperatorTestDemo { public static void Test() { OperatorTest mc = 1;//通过隐式装换,生成myclass对象 Console.WriteL…
1)Type.IsGenericType类似属性变更 以下是.net framework 4.5中Type抽象类中泛型类型的几个个属性,用于泛型类型的相关信息判断: 以下是.net core(netstandard1.5)中Type抽象类中泛型类型的属性: 可见Type类型中的IsGenericType(),IsGenericTypeDefinition()都被取消了,因此,如下.net framework 4.5.2中的代码: private static T ChangeType<T>(s…
写过javascript的人都知道js解析json 1:(JSON) 字符串转换为对象. var str = '{"name":"lsw","hobby":"free"}'; 1.1:JSON.parse(str); 2:对象解析出字符串 var a = {a:1,b:2}; JSON.stringify(a) 3:注意:浏览器兼容问题 网上有json2.js文件 或者jquery文件 问题来了c# 写过webapi 或者we…
Dapper完美兼容Oracle,执行存储过程,并返回结果集. 这个问题,困扰了我整整两天. 刚刚用到Dapper的时候,感觉非常牛掰.特别是配合.net 4.0新特性dynamic,让我生成泛型集合,再转json一气呵成. 不过,各种ORM总有让人吐槽的地方... 比如,我之前在SqlServer上写测试,搞封装,没有任何问题.CURD.批量操作.存储过程.事物等. 可是以转到Oracle上,就出问题了[喂~不是说好的支持Oracle的么] 在写Dapper+Oracle单元测试的前期,是没有…