C#类型转换

类型转换

C#是强语言类型,在了解如何类型转化前让我们想了解几个类型测试运算符

0.类型测试运算符

System.Type

0.1.typeof

返回typeof(x)x的类型,和GetType的区别是传入()的type要求是一个实例化的对象,而typeof要求的是一种类型

0.2.GetType()

x.GetType(),其中x为类型的实例,返回实例的数据类型

0.3.Is

E is T,E 是返回一个值的表达式,T 是类型或类型参数的名称。 E 不得为匿名方法或 Lambda 表达式。满足以下任一条件,则 is 运算符将返回 true

  • 表达式结果的运行时类型为 T

  • 表达式结果的运行时类型派生自类型 T、实现接口 T,或者存在从其到 T 的另一种隐式引用转换

0.4.as

as 运算符将表达式结果显式转换为给定的引用或可以为 null 值的类型。 如果无法进行转换,则 as 运算符返回 null。 与强制转换表达式 不同,as 运算符永远不会引发异常。

1.隐式转换

内置数值类型,如果要存储的值无需截断或四舍五入即可适应变量,则可以进行隐式转换。(精确度高数据的类型转化为精确度低的数据类型,string > char ,double > float , longlong > long > int >short 源类型的范围是目标类型范围的正确子集)以及从派生类到基类的转换。(里氏替换原则保证了这一点,子类所拥有的功能父类一定拥有,子类一定能转化成父类对象)由于这种转换始终会成功且不会导致数据丢失,因此无需使用任何特殊语法直接用用赋值符号即可。

2.显式转换(强制转换)

精确度低数据的类型转化为精确度高的数据类型,或所要转换的两种类型不能隐式转化

强制转换表达式:

形式为(T)E强制转换表达式将表达式 E 的结果显式转换为类型 T。 如果不存在从类型 E 到类型 T 的显式转换,则发生编译时错误。 在运行时,显式转换可能不会成功,强制转换表达式可能会引发异常。

从这里也可看出运算符可重载性,()除了强制转换数据类型,还可以使用括号调用方法或调用委托,也可以调整表达式中计算操作的顺序。

3.用户定义的转换

需要用到operate和checked关键字,过于进阶暂且不涉及。

4.使用帮助程序类进行转换

4.2.值类型中自带的方法

许多值类型类中都定义了TryParse、Parse方法

4.1Convert类

Convert.ToXXX方法


4.3 string类Format方法

将带有参数的string类型变量在接受传入参数后,将整体转化为string类型变量

string birth = string.Format("date is {0}", birthdate.ToLongDateString());

———————————————————————————————————————————

强制转换和类型转换 - C# 编程指南 - C# | Microsoft Learn

可能需要将类变量分配给接口类型的变量?怎么转

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值