自定义类型转换器之TypeConverter
C#提供了很多类型转换的方法如ConvertToInt、int.Parse、int.tryParse等等,这些方法都能将一个C#的基本数据类型转换成另一个C#基本数据类型.那么.既然如此,C#肯定会提供某种机制来让我们编写自定义的类型转换器.
so.C#提供了一个类型-TypeConverter来帮助我们完成类型转换的功能,TypeConverter类就是将一种类型(object,当然可以是任意类型)转换成一种类型(一般为string,当然也可以是其他的类型).或者将另一种类型转换回来.
1、所有继承TypeConverter必须实现的虚方法
(1)、CanConverterTo:两个重载的方法
a、TypeConverter.CanConvertTo (Type)
b、TypeConverter.CanConvertTo (ITypeDescriptorContext, Type)
都有一个Type参数(要转换成什么类型),例如要设计成转换成string,在方法体里面判断这个参数的Type如果是string,返回true,否则为false;
(2)、ConverterTo:两个重载的方法
a、TypeConverter.ConvertTo (Object, Type)
b、TypeConverter.ConvertTo (ITypeDescriptorContext, CultureInfo, Object, Type)
都有Object参数和Type参数,将Object转换成Type类型的Object,返回Type类型的Object.
下面的两个类似的方法(3)、(4),不过方向相反,是从其他类型转换回来。
(3)、CanConverterFrom:两个重载的方法
a、TypeConverter.CanConvertFrom (Type)
b、TypeConverter.CanConvertFrom (ITypeDescriptorContext, Type)
在方法体里面判断参类型数是否是能转换回来的类型,例如string类型,如果是,返回true,否则返回false;
(4)、ConverterFrom:两个重载的方法
TypeConverter.ConvertFrom (Object)
TypeConverter.ConvertFrom (ITypeDescriptorContext, CultureInfo, Object)
在方法体里面判断参数Object的类型是不是能转换回来的类型,例如string类型,如果是返回转换回来的类型。
自定义类型转换器之TypeConverter的更多相关文章
- Struts2自定义类型转换,和处理类型转换错误
Struts2自定义类型转换: 从前台接受到的类型全部是字符串,Struts2自带的一些基本类型转换有时不能满足我们的特别需要,如:日期字符串输入格式,还有一些自定义的类,直接传到后台,我们需要一些自 ...
- java struts2入门学习---自定义类型转换
自定义类型转换器的作用就是将struts无法识别的类型转换成自己所需要的. 比如输入:广东-东莞-虎门,对应的输出时能输出:广东省 东莞市 虎门(镇/区) 这里涉及到的知识点即是将String转换为任 ...
- 【.NET深呼吸】基础:自定义类型转换
照例,老周在开始吹牛之前,先讲讲小故事,这是朋友提出的建议,老TMD写技术有什么了不起的,人人都会写.后来老周想想,也确实,代码谁不会写,能写到有品位有感悟,就不容易做到.于是,老周接受了该朋友的建议 ...
- AutoMapper搬运工之自定义类型转换
前言 最近还挺忙,还有点累,一直都没更新了,实在是懒呀.正题之前先说点别的,最近公司要扩张了,需要大量开发,领导说推荐有钱可以拿,如此好机会,我就趁机做个广告.ShippingRen.com招募.NE ...
- 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换
[源码下载] 不可或缺 Windows Native (24) - C++: 运算符重载, 自定义类型转换 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 运算符重载 自 ...
- [Struts2学习笔记] -- 自定义类型转换
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- C#构造函数、操作符重载以及自定义类型转换
构造器 构造器(构造函数)是将类型的实例初始化的特殊方法.构造器可分为实例构造器和类型构造器,本节将详细介绍有关内容. 实例构造器 顾名思义,实例构造器的作用就是对类型的实例进行初始化.如果类没有显示 ...
- mybatis generator 生成javabean自定义类型转换
因为默认mybatis generator自动生成的,带小数的都转成了bigdecimal了,而且长度不同的整数转成了不同的类型. 但是我想要带小数的转成double,整数转成integer. 所有自 ...
- Mybatis使用自定义类型转换Postgresql
Mybatis使用自定义类型转换Postgresql 主要目的 为了解决从数据库取出来之后再手动转换为javaBean的问题. 主要用mybatis提供的Handler来把处理前置 添加转换类 imp ...
随机推荐
- mysql 字段名是关键字 报错
DROP TABLE IF EXISTS `bas_dictionary`; CREATE TABLE `bas_dictionary` ( `id` ) NOT NULL AUTO_INCREMEN ...
- Zookeeper客户端cli_st为何在crontab中运行不正常?
实践中,发现直接在命令行终端运行cli_st时,能够得到预期的结果,但一将它放到crontab中,则只收到: bye 相关的一段clit_st源代码如下: if (FD_ISSET(, &rf ...
- idea jvm 优化
修改对应配置文件 64位的是idea64.exe.vmoptions -Xms2048m -Xmx2048m -Xmn1024m -XX:PermSize=512m -XX:MaxPermSize=5 ...
- TOAD连接ORACLE而不装ORACLE 客户端的方法
TOAD连接ORACLE而不装ORACLE 客户端的方法 原来连接ORACLE总是要装ORACLE客户端,挺麻烦得,一方面要带ORACLE得盘,另一方面,装这么大得东西也让人很不爽. ORACLE好像 ...
- C# 使用 COALESCE 表达式简化 Null 检查
下面这个判断 null 的语句: a == null ? b: a 可以用 COALESCE 表达式,简化成: a ?? b
- MVC中控制器向视图传值的四种方式
MVC中的控制器向视图传值有四种方式分别是 1 ViewDate 2.ViewBag 3.TempDate 4.Model 下面分别介绍四种传值方式 首先先显示出控制器中的代码 using S ...
- SQL 增加列
-- 判断是否存在该列 if exists(SELECT * FROM syscolumns WHERE id=object_id('@Table') and name='@COLUMN') ALTE ...
- 【OCP题库-12c】最新CUUG OCP 071考试题库(72题)
72.View the exhibit for the structure of the STUDENTand FACULTYtables. STUDENT Name Null? Type ----- ...
- layui select 禁止点击
$('select').attr('disabled', 'disabled'); form.render('select'); 注意事项: 1. 必须写 layui.use([form]) 2. 先 ...
- JAVA 中的 StringBuilder 和 StringBuffer 适用的场景是什么?
JAVA 中的 StringBuilder 和 StringBuffer 适用的场景是什么? 最简单的回答是,stringbuffer 基本没有适用场景,你应该在所有的情况下选择使用 stringbu ...