C#类型转换的方法
2017-10-12 10:18
239 查看
C# 类型转换方法
类型转换从根本上说是把数据从一种类型转换为另一种类型。在 C# 中,类型转换有两种形式:隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换,
不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。转换类型的范围大小和从属关系和隐式转换相反。显式转换可能会导致数据出错,或者转换失败,甚至无法编译成功。
下面的实例显示了一个隐式的类型转换:
[csharp] view
plain copy
namespace TypeConvertion
{ class Base
{
}
class Derive : Base //类Derive是类Base的子类
{
}
class Program
{
static void Main(string[] args)
{
int inum = 100;
long lnum = inum; // 进行了隐式转换,将 int 型(数据范围小)数据转换为了 long 型(数据范围大)的数据
Base b = new Derive(); // 这里也是隐式转换,将一个新建的 Derive 实例转换为了其基类 Base 类型的实例b
}
}
}
下面的实例显示了一个显式的类型转换:
[csharp] view
plain copy
namespace TypeConversionApplication
{
class ExplicitConversion
{
static void Main(
1ae3b
string[] args)
{
double d = 5673.74;
int i;
// 强制转换 double 为 int
i = (int)d;
Console.WriteLine(i);
Console.ReadKey();
}
}
}
当上面的代码被编译和执行时,它会产生下列结果:
[csharp] view
plain copy
5673
显示转换的例子2:
[csharp] view
plain copy
double dnum = 100.1;
int ifromd = (int)dnum; //double类型显式转换转为int类型
Base b = new Derive();
Derive d = b as Derive; //使用as进行显式转换
Console.WriteLine(d is Base);
Console.WriteLine(d is Derive);
运行结果:
[csharp] view
plain copy
FALSE
FALSE
C# 类型转换方法
1、C# 提供了下列内置的类型转换方法:序号 | 方法 & 描述 |
---|---|
1 | ToBoolean 如果可能的话,把类型转换为布尔型。 |
2 | ToByte 把类型转换为字节类型。 |
3 | ToChar 如果可能的话,把类型转换为单个 Unicode 字符类型。 |
4 | ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构。 |
5 | ToDecimal 把浮点型或整数类型转换为十进制类型。 |
6 | ToDouble 把类型转换为双精度浮点型。 |
7 | ToInt16 把类型转换为 16 位整数类型。 |
8 | ToInt32 把类型转换为 32 位整数类型。 |
9 | ToInt64 把类型转换为 64 位整数类型。 |
10 | ToSbyte 把类型转换为有符号字节类型。 |
11 | ToSingle 把类型转换为小浮点数类型。 |
12 | ToString 把类型转换为字符串类型。 |
13 | ToType 把类型转换为指定类型。 |
14 | ToUInt16 把类型转换为 16 位无符号整数类型。 |
15 | ToUInt32 把类型转换为 32 位无符号整数类型。 |
16 | ToUInt64 把类型转换为 64 位无符号整数类型。 |
[csharp] view
plain copy
namespace TypeConversionApplication
{
class StringConversion
{
static void Main(string[] args)
{
int i = 75;
float f = 53.005f;
double d = 2345.7652;
bool b = true;
Console.WriteLine(i.ToString());
Console.WriteLine(f.ToString());
Console.WriteLine(d.ToString());
Console.WriteLine(b.ToString());
Console.ReadKey();
}
}
}
当上面的代码被编译和执行时,它会产生下列结果:
[csharp] view
plain copy
75
53.005
2345.7652
True
2、C#
提供了Convert和Parse的类型转换方法:
[csharp] view
plain copy
using System;
namespace TypeConversion
{
class ConversionDemo
{
static void Main(string[] args)
{
string locstr = 123.ToString();
//如果要将"locstr"转成整型数
//方法一: 用 Convert
int i = Convert.ToInt16(locstr);
Console.WriteLine(i);
//方法二: 用 Parse
int ii = int.Parse(locstr);
Console.WriteLine(ii);
/*int.TryParse(string s,out int i);
该方式也是将数字内容的字符串转换为int类型,
但是该方式比int.Parse(string s) 好一些,它不会出现异常,最后一个参数result是输出值,
如果转换成功则输出相应的值,转换失败则输出0。*/
string s1 = "abcd";
string s2 = "1234";
int a, b;
bool bo1 = int.TryParse(s1, out a);
Console.WriteLine(s1 + " " + bo1 + " " + a);
bool bo2 = int.TryParse(s2, out b);
Console.WriteLine(s2 + " " + bo2 + " " + b);
}
}
}
运行结果:
[csharp] view
plain copy
123
123
abcd False 0
1234 True 1234
相关文章推荐
- C#中类型转换方法
- C#调用VC DLL接口函数参数类型转换方法介绍
- C#将数据转换为指定类型,支持对可空类型(Nullable类)转换方法示例
- C#调用VC DLL接口函数参数类型转换的方法
- C# 数据类型转换方法
- C# DataTable.Select()方法,条件中使用类型转换
- c#枚举类型的内容全部获取和字符串转换为枚举类型的方法
- 《CLR Via C# 第3版》笔记之(八) - 类型的转换构造器和方法
- C#将数据转换为指定类型,支持对可空类型(Nullable类)转换方法示例
- 在C#中将任意数值类型数据与字节数组相互转换的一个方法
- C#数据类型转换方法
- C#调用VC DLL接口函数参数类型转换的方法
- C# 控制台输入输出非字符串类型数据的方法[进制数字转换为八进制数字]
- C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法
- c#数据类型转换,BYTE,float,double,char类型间的转换方法
- C#通用类型转换方法
- C#中各种数据类型转换的方法的类
- C#调用VC DLL接口函数参数类型转换方法介绍
- delphi 对应 c# 的一些函数及类型的转换方法【原】
- C#引用C++ Dll 所有类型转换方法