四时宝库

程序员的知识宝库

C#之类型转换

我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。

在C#中,类型转换用于改变变量的类型,主要有以下2种方法:

1、隐式类型转换

2、显式类型转换

一、隐式类型转换

隐式转换可以在任何类型之间进行,包括值类型和引用类型。不过,需要注意的是,这种隐式转换可能会带来一些风险,尤其是在进行对象之间的转换时。

以下例子:将一个派生类的实例隐式地转换为一个基类的实例。

class Base {}  
class Derived : Base {}  


Derived d = new Derived();  
Base b = d; // 这是安全的隐式转换

以下例子:将int类型转换为更大范围的double类型。

int a = 10;
double b = a;
// 隐式转换,将int类型的a转换为double类型

二、显式类型转换

当需要将一个较大的类型转换为一个较小的类型时,必须使用强制类型转换。

2.1 指定类型强制转换

以下例子:强制把double类型转换为更小的int类型。

double a = 10.0;


int b = (int)a;
// 强制将a从double类型转换为int类型

以下例子:强制把Base类型转换为Derived类型。

Base a = new Derived();
Derived b = (Derived)a;


class Base { }
class Derived : Base { }

2.2 Parse和TryParse方法

在C#针对值类型,提供了Parse和TryParse方法。

两者的区别:Parse转换失败会抛出异常,TryParse转换失败不会抛出异常。

string s = "10";


// 将字符串转换为整型
int a = int.Parse(s); 




//转换
int c ;
int.TryParse(s, out c);

2.3 Convert类

同时C#的System.Convert类,提供了一组方法用于执行各种类型的转换。

要注意的是,转换失败会引发异常,因此在执行类型转换时要处理可能出现的异常。

string a = "123";


// 将字符串转换为整数
int b = Convert.ToInt32(a);

2.4 is和as运算符

is运算符用于检查对象是否为特定类型,而as运算符则尝试将对象转换为特定类型。

as运算符进行转换,转换失败不会抛出异常,也是比较推荐的方法,可阅读性更高。

object obj = "Hello";
if (obj is string)
{
    // 使用as运算符进行转换  
    string s = obj as string; 
}

我是编程乐趣,一个10年.Net开发经验老程序员,专注开源项目和编程知识分享。

私信回复:【888】,领取.Net视频教程。

- End -

推荐阅读

一个高性能、低内存文件上传流.Net组件

一个基于Quartz.Net开发的Windows版本的进程监控

一个C#跨平台的机器视觉和机器学习的开源库

盘点10个.Net比较流行的开源的ORM框架

支持多语言、多商店的商城,.Net7 + EF7领域驱动设计架构

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接