前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# 类型转换

C# 类型转换

作者头像
小嗷犬
发布2022-11-15 15:44:52
7070
发布2022-11-15 15:44:52
举报
文章被收录于专栏:小嗷犬的CSDN文章

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:C# 类型转换


C# 类型转换


1.隐式转换

类型转换 即不同变量类型之间的相互转换。

隐式转换 则是不同变量类型之间的自动转换。

在我们将一个小范围的值赋值给一个大范围的变量或者将一个低精度的值赋值给一个高精度的变量时,会发生这种转换:

代码语言:javascript
复制
using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 1;
            long l = i;
            Console.WriteLine(l);
        }
    }
}

这段代码将一个int类型的1赋值给了一个long类型的变量,这里面就发生了隐式转换。

这样的操作反过来是不行的:

代码语言:javascript
复制
using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            long l = 1;
            int i = l;
            Console.WriteLine(i);
        }
    }
}

第10行报错:error CS0266: 无法将类型“long”隐式转换为“int”。存在一个显式转换(是否缺少 强制转换?)

同样的,double类型的变量也可以存储float类型的值:

代码语言:javascript
复制
using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            float f = 1;
            double d = f;
            Console.WriteLine(d);
        }
    }
}

2.显示转换

显示转换 是将一个类型的值手动转换成目标类型的转换方式。

我们可以通过括号加目标类型来进行强制转换:

代码语言:javascript
复制
using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            long l = 1;
            int i = (int)l;
            Console.WriteLine(i);
        }
    }
}

这样就不会报错。但是当大范围转小范围,或者是高精度转低精度的时候,就要考虑范围和精度的问题了。

除此之外,我们还可以通过Parse来将字符串转换成对应类型的值:

代码语言:javascript
复制
using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "123";
            int i = int.Parse(s);
            Console.WriteLine(i);
        }
    }
}

前提是输入的字符串要能够直接转换成对应类型的值,而且要符合目标的存储范围。

上面的两种方法常用于数值之间的转换和字符串转换,我们还可以使用Convert来进行数据之间的转换:

代码语言:javascript
复制
using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = Convert.ToInt32("123");
            Console.WriteLine(i);
        }
    }
}

使用Convert.To + 数据类型可以实现更加精确的转换,同时,适用的变量类型也更多。

如果是其他类型转换成字符串则更加简单,只需要使用ToString就行:

代码语言:javascript
复制
using System;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = 3.1415.ToString();
            Console.WriteLine(s);
        }
    }
}

在值之后直接添加.ToString()即可完成转换。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C# 类型转换
  • 1.隐式转换
  • 2.显示转换
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档