开放的编程资料库

当前位置:我爱分享网 > C#教程 > 正文

C# 转换

在本文中,我们展示了如何使用Convert类在C#中转换类型。

Convert将一种基本数据类型转换为另一种基本数据类型。

Convert类位于System命名空间中。

类型转换类型转换是指将一种数据类型的实体更改为另一种数据类型。有两种类型的转换:隐式和显式。隐式类型转换,也称为强制转换,是编译器自动进行的类型转换。

C#转换类型

在下一个例子中,我们将介绍三种数据转换方式。

int n = 12;
string s  = "15";

string res = n + s;
Console.WriteLine(res);

int res2 = int.Parse(s) + n;
Console.WriteLine(res2);

int res3 = Convert.ToInt32(s) + n;
Console.WriteLine(res3);

程序定义了一个整数和一个字符串。我们将这两个值相加。

int res = n + s;

默认情况下,编译器会隐式地将整数转换为字符串并将两个字符串相加。

int res2 = int.Parse(s) + n;

我们可以使用int.Parse方法将字符串显式转换为整数并将两个整数相加。

int res3 = Convert.ToInt32(s) + n;

或者,我们可以使用Convert.ToInt32方法。Convert类包含几种常见类型转换的方法。

$ dotnet run
1215
27
27

C#Conver.ToBoolean

Conver.ToBoolean方法将指定值转换为等效的布尔值。

double n1 = 0.3;
int n2 = 3;
int n3 = 0;
int n4 = -1;

decimal d = 0.35m;

Console.WriteLine(Convert.ToBoolean(n1));
Console.WriteLine(Convert.ToBoolean(n2));
Console.WriteLine(Convert.ToBoolean(n3));
Console.WriteLine(Convert.ToBoolean(n4));
Console.WriteLine(Convert.ToBoolean(d));

在程序中,我们将double、int和decimal值转换为布尔值。

$ dotnet run
True
True
False
True
True

C#转换十六进制字符串

Convert.ToHexString将一个8位无符号整数数组转换为使用大写十六进制字符编码的等效字符串表示形式。

Convert.FromHexString将指定的字符串(将二进制数据编码为十六进制字符)转换为等效的8位无符号整数数组。

using System.Text;

string msg = "an old falcon";
byte[] data = Encoding.ASCII.GetBytes(msg) ;

string hexstr = Convert.ToHexString(data);
Console.WriteLine(hexstr);

byte[] data2 = Convert.FromHexString(hexstr);
Console.WriteLine(Encoding.ASCII.GetString(data2));

程序将消息转换为十六进制字符串,反之亦然。

$ dotnet run
616E206F6C642066616C636F6E
an old falcon

C#Convert.ToBase64String

Convert.ToBase64String将一个8位无符号整数数组转换为使用base-64数字编码的等效字符串表示形式。

相反,Convert.FromBase64String方法将Convertsthe指定的字符串(将二进制数据编码为base-64数字)转换为等效的8位无符号整数数组。

Base64编码广泛用于发送电子邮件附件。

using System.Text;

string msg = "an old falcon";

byte[] data = Encoding.ASCII.GetBytes(msg);
Console.WriteLine(BitConverter.ToString(data));

string base64 = Convert.ToBase64String(data);
Console.WriteLine(base64);

Console.WriteLine("---------------------");

byte[] data2 = Convert.FromBase64String(base64);
Console.WriteLine(BitConverter.ToString(data));
Console.WriteLine(Encoding.ASCII.GetString(data));

在程序中,我们将字符串转换为字节数组,然后将数组转换为Base64字符串。他们我们逆转了这个过程。

$ dotnet run
61-6E-20-6F-6C-64-20-66-61-6C-63-6F-6E
YW4gb2xkIGZhbGNvbg==
---------------------
61-6E-20-6F-6C-64-20-66-61-6C-63-6F-6E
an old falcon

C#Convert.ToDateTime

Convert.ToDateTime将日期和时间的指定字符串表示形式转换为等效的日期和时间值。

public static DateTime ToDateTime (string? value);

这是方法的语法。

DateTime now = DateTime.Now;
Console.WriteLine(now);

string d = now.ToString();
Console.WriteLine(d);

DateTime dt = Convert.ToDateTime(d);
Console.WriteLine(dt);

在示例中,我们将当前日期时间转换为字符串,然后将字符串转换回日期时间。

$ dotnet run
10/23/2022 6:58:09 PM
10/23/2022 6:58:09 PM
10/23/2022 6:58:09 PM

在本文中,我们展示了如何使用Convert在C#中转换类型。

列出所有C#教程。

未经允许不得转载:我爱分享网 » C# 转换

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏