首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

Csharp+Asp.net全版教程

  这次我们首先讲解一下类型转换,我们在写程序时经常用到类型转换,而且特别多的规则。我在这里粗略的讲解一下.隐式转换是系统默认的、不需要加以声明即可进行的转换。
  1.隐式数值转换
  隐式数值转换实际上就是从低精度的数值类型转换到高精度的数值类型的转换。byte x=255;ushort y=x;y=65535;float z=y;//均从低精度到高精度,反之会产生溢出, 隐式数值转换的类型太多,我就不多介绍,记住上面的原则就可以了。详细规则可查看msdn
  2.隐式枚举转换
  隐式枚举转换用于把十进制整数0转换成任何枚举类型,对应的其他整数则不存在这种转换。

 

 using System;
enum Color
{
Red,Green,Blue
};
class MikeCat
{
static void Main()
{
Color c;
//声明Color的变量c;
c=0;//将0转换为Red;
Console.WriteLine("c的值是{0}",c);//结果:c的值是Red;如果将c=0改成c=1,则编译器会给出错误。
}
}

  
  3.隐式引用转换
  从任何引用类型到object的转换。从类类型A到类类型B的转换,其中类A从类B派生得到。从类类型A到接口类型B的转换,其中类A实现了接口B。从接口类型A到接口类型B的转换,其中接口A是从接口B派生。 从任何数组类型到System.Array的转换。从任何委托类型到System.Delegate的转换。从任何数组类型或委托类型到System.ICloneable的转换。从空类型(null)到任何引用类型的转换。显示转换也称为强制转换,它需要用户明确地指定转换的类型。

 

 char c=(char)65;//A
int i=(int)'A';//65
//显示转换包含所有的隐式转换,即任何系统允许的隐式转换写成显示转换的形式都是允许的。
int i=300;
long l=(long)i;
//另外一例:
using System;
class MikeCat
{
static void Main()
{
long longValue = Int64.MaxValue;
int intValue = (int) longValue;
Console.WriteLine(
"(int){0} = {1}", longValue, intValue);
}
}

  
  类型 long 转换为 int 是显式转换,它使用了强制转换表达式。输出为:(int) 9223372036854775807 = -1这是因为有溢出发生。
   1.显示数值转换
  显示数值转换是指当不存在相应的隐式转换时从一种数值类型转换为另一种数值类型。转换类型也很繁琐,只需记住转换规则,详细查阅MSDN。由于显示数值转换可能丢失信息或引发异常,因此转换按以下原理被处理:简略说就是高精度显示转换为低精度会引发异常(OverFlowException),未引发异常的情况,源变量的值通过舍入得到最接近的整型值作为转换结果。详细转换时的异常情况查阅MSDN

 

 /*test.cs*/
using System;
public class MikeCat
{
public static void Main()
{
ushort u=65535;
byte b=(byte)u;
Console.WriteLine(
"b的值是{0}",b);
}
}
编译状况如下:
E:
/>csc test.cs
Microsoft (R) Visual C# .NET 编译器版本
7.10.3052.4
用于 Microsoft (R) .NET Framework 版本
1.1.4322
版权所有 (C) Microsoft Corporation
2001-2002。保留所有权利。
E:
/>test.exe
b的值是255
E:
/>csc/checked test.cs ///checked[+|-] 生成溢出检查
E:/>test.exe
未处理的异常: System.OverflowException: 算术运算导致溢出。
at MikeCat.Main()
E:
/>csc/checked- test.cs
E:
/>test.exe
b的值是255

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

【责编:Zenghui】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航