C#学习笔记-类型转换
来源:互联网 发布:元数据驱动架构 编辑:程序博客网 时间:2024/04/28 22:51
一、正确操作字符串
string str = "string"+9;
string str ="string"+9.tostring();
这两个的区别,第一个发生了装箱行为,第二个是直接通过操作内存来完成从int到string的转换,效率要比装箱高很多,所以在使用其他值引用类型到字符串的转换时,要尽量避免使用“+”操作符,而要采用tostring()完成;
使用string.Format()来进行字符串的格式化,是在内部使用string.Builder来进行格式化:
string a="a";string b="b";string c="c";string.Format("{0}{1}{2}",a,b,c);
二、正确使用类型转换
1、基元类型转换。
基元类型指的是编译器直接支持的数据类型,即直接映射到FCL中的类型,如int、double、object、float、char、decimal、bool等;
用户自定义类型也可以通过重载转换运算符来实现转换:
public override string ToString() { return value.ToString(); }
不过一般用户自定义类型转换要从面向对象的角度考虑,如继承、实现等
2、使用类型内置的方法进行转换。
如Parse、TryParse(字符串转换为整形)、Todouble、Tostring、ToDataTime,FCL中一般常用的类型转换都已自带。
3、使用帮助类提供的方法。
Systerm.Convert提供了类型之间的转换方法,不仅 可以将一个基元类型转换为其他基元类型,如ToChar、ToBool等,还可以将任何自定义类型转换为任何基元类型,只要自定义类型继承IConvertible接口即可,同时继承该IConvertible接口就必须实现它的其他方法,如果不支持某个方法,应该抛出throw new InvalidCastException("Ip-to-Boolean Convert is NotSupported");而不是throw new NotImplementedException();
4、使用CRL支持的类型转换。
实际上就是基类和子类之间的转换;子类向基类支持隐式转换,基类向子类必须显示转换。
理解强制类型转换:
secondType = (SecondType)fristTpye;
这表示两种可能情况:1、两个类型之间依靠类型转换符进行转换;
2、FristType是SecondType的基类;并且只能是这两种中的一个,不可能同时存在。
- C#学习笔记-类型转换
- C#学习笔记_4.C#类型转换
- C# 类型转换笔记
- 【转】C#学习笔记--C#的类型转换
- 【C#学习】类型转换
- C#学习笔记--引用类型分类,对象类型、字符串类型、数字类型,类型转换
- C#教学第14讲类型转换2(学习笔记)
- 【C#编程基础学习笔记】4---Convert类型转换
- c#学习--类型转换整理
- DWR类型转换学习笔记
- 类型转换---struts2学习笔记
- Struts2类型转换学习笔记
- Struts2学习笔记-类型转换
- JS学习笔记:类型转换
- Swift 学习笔记 - 类型转换
- C++学习笔记--类型转换
- C#学习笔记-数据类型转换
- C#入门经典学习5-类型转换
- FzrOJ 1019 电路实验
- struts2 结合extjs实现的一个登录实例
- 第十二周项目四 日期时间类
- Jquery+ajax的简单使用
- android4.0+版本修改状态栏透明的调试
- C#学习笔记-类型转换
- 项目一(2)(3)
- 定义和调用类中的成员
- 列表中的一键拨号
- 模板缓冲器
- 第12周-项目一-public 继承方式下
- Lua table 简单理解
- GitHub详细教程
- 重写与重载规则