当前位置: 首页 > news >正文

网站制作公司深圳购物网站导航素材代码

网站制作公司深圳,购物网站导航素材代码,企业推广,安徽网站建设推荐【C#】通用类型转换 自动类型转换(隐式类型转换)强制类型转换(显式类型转换)通过函数进行转换(通过方法进行类型转换)使用 as 操作符转换通用类型转换方法实现 数据类型转换就是将数据(变量、数…

【C#】通用类型转换

  • 自动类型转换(隐式类型转换)
  • 强制类型转换(显式类型转换)
  • 通过函数进行转换(通过方法进行类型转换)
  • 使用 as 操作符转换
  • 通用类型转换方法实现

数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型。

自动类型转换(隐式类型转换)

自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换,这种转换不需要程序员干预,会自动发生。

例如:

int i = 100;
double d = i; 

敲黑板:

  1. 转换前后的类型必须相兼容 例如:int和double
  2. 隐式数值转换实际上就是从低精度的数值类型到高精度的数值类型的转换,即小的类型转大的类型

强制类型转换(显式类型转换)

与自动转换正好相反,强制转换需要用户明确地指定转换的类型。显式转换包括所有的隐式转换,也就是说把任何系统允许的隐式转换写成显式转换的形式都是允许的
例如:

double d = 100.00;
int i = (int)d;

敲黑板:

  1. 显式转换可能会导致错误。进行这种转换时编译器将对转换进行溢出检测。如果有溢出说明转换失败,就表明源类型不是一个合法的目标类型。无法进行类型转换。
  2. 强制类型转换会造成数据精度丢失。

通过函数进行转换(通过方法进行类型转换)

函数转换,顾名思义通过编写类型处理方法的形式达到转换类型的目的。

int i;
string str = "100";
i = int.Parse(str);
int.TryParse(str, out i); // 推荐使用,对比 int.Parse(str) 多了异常处理增强了代码的健壮性
  • 常用类型转换方法
方法说明
ToStringC# 基类型是 Object 所以所有的类型都有 ToString()。转字符串类型
Convert.ToChar转换为字符型(char)
Convert.ToString转换为字符串型(string)
Convert.ToDateTime转换为日期型(datetime)
Convert.ToDouble转换为双精度浮点型(double)
Conert.ToSingle转换为单精度浮点型(float)
Convert.ToBase64CharArray将数组中的项进行 Base64 编码
Convert.ToBase64String将字符串进行 Base64 编码
Convert.ToBoolean转换为布尔类型(bool)
Convert.ToDecimal转换为等效的十进制数
Convert.ToSByte转换为 8 位带符号整数
Convert.ToInt32转换为 32 位带符号整数
Convert.ToInt16转换为 16 位带符号整数
Convert.ToInt64转换为 64 位带符号整数
Convert.ToByte转换为 8 位无符号整数
Convert.ToUInt16转换为 16 位无符号整数
Convert.ToUInt32转换为 32 位无符号整数
Convert.ToUInt64转换为 64 位无符号整数

使用 as 操作符转换

使用 as 操作符具有 高效安全 的特点:
  as 操作符不会做过的转换操作,当需要转化对象的类型属于转换目标类型或者转换目标类型的派生类型时,那么此转换操作才能成功,而且并不产生新的对象当不成功的时候,会返回 null
  当用 as 操作符进行类型转换的时候,首先判断当前对象的类型,当类型满足要求后才进行转换,而传统的类型转换方式,是用当前对象直接去转换,而且为了保护转换成功,要手动加上try-catch,所以相对来说,as 效率高。

敲黑板:

  1. as 转换不成功会返回 null 因此在无法确定转换结果的情况下一定一定要进行判空。
  2. as 也有一定的限制:
    • 不用在类型之间进行类型转化
    • 不能应用在值类型数据 - 只支持引用类型

通用类型转换方法实现

通用类型转换方法本质还是方法进行类型转换的方式,确切来说是 Convert 的形式。
不同于现有的转换方法有固定的类型,通用型是通过 泛型 约束来定义目标转换类型。并且使用扩展方法的形式是的调用起来非常的容易,且可以进行链式编程。

public static class Extensions
{public static T Parse<T>(this object value, T defaultValue = default){var type = typeof(T);try{var nullableType = Nullable.GetUnderlyingType(type);if (nullableType is null)return (T)Convert.ChangeType(value, type);return (T)Convert.ChangeType(value, nullableType);}catch{return defaultValue;}}
}

备注

  • 还可以通过继承接口 IConventible 或者 TypeConventer 类,从而实现自己的转换。
http://www.yayakq.cn/news/15245/

相关文章:

  • 网站联系我们页面设计专业网站制作团队
  • 合肥专业手机网站哪家好萍乡网站建设萍乡
  • 系统集成销售和网站建设销售网站商城建设合同免费下载
  • 台州做网站是什么网站空间租
  • 写小说的网站自己做封面高校网站群建设研究
  • 做棋牌游戏网站新网互联 网站上传
  • 数据库做网站和做软件有什么不一样wordpress 怎么汉化主题
  • 做pc端网站代理商注册安全工程师
  • 旅游网站模板html5做企业竞争模拟的网站
  • 建设工程信息网官网新网站社区电商小程序模板包含哪些
  • 机构网站建设需要交费吗湖南金辉建设集团有限公司网站
  • 乐山智顶网站建设apt方式 安装wordpress
  • 教研室网站建设微盟微商城怎么样
  • 大学生做简历的网站手机网站建设目标
  • 网站怎么管理维护网站静态页模板
  • 如何自己创造网站给别人做网站赚钱吗
  • 甘肃建设厅职称查询官方网站苏州工程造价信息网官网
  • 海纳企业网站建设模板摄影网站建设公司
  • 西安手机网站定制网站建设电子商务网站建设与推广实务
  • 微官网与手机网站首页wordpress版本选择
  • cdr 做网站中源建设有限公司网站
  • 郴州卖房网站做海淘的网站做海淘的网站有哪些
  • 苏州个人网站制作公司wordpress 3.9 漏洞
  • 想搞一个自己的网站怎么做iis网站伪静态
  • 网站应用软件怎么架设网站建设销售如何接单
  • 外国设计师素材网站辽宁网站建设价格
  • 产品销售型企业网站wordpress加引导页
  • 企业网站建设发展历程免费版vesta安装WordPress
  • 无锡百度推广代理商网站 seo 设置
  • 网站模板 数据库网站设计工作内容