- 热门文章:
- · Csharp+Asp.net系列教程(四)(1)
- · 解决.net开发问题的最终法宝
- · 如何开发高性能的 ASP.NET 应用程序
- · asp和asp.net共享session解决办法
- · 实现自己的ASP.NET宿主系统
- · 在asp.net下将log4net配置成可log到ms sql
- · 越过调试这道槛——ASP.NET无法调试问题剖析
- · 在ASP.NET中实现MVC模式(五)
- · 在ASP.NET中实现MVC模式(四)
- · 在ASP.NET中实现MVC模式(二)
- · 在ASP.NET中实现MVC模式(一)
- · ASP.NET中根据XML动态创建并使用WEB组件(三)
上一篇:如何在ASP.NET中显示数据库中的数据 >>
Csharp+Asp.net系列教程(四) (2)
方括号 ([]) 用于数组、索引器和属性,也可用于指针。
type [] array [ indexexpr ]
其中: type 类型。 array 数组。 indexexpr 索引表达式
10.() 运算符
除了用于指定表达式中运算符的顺序外,圆括号还用于指定转换(类型转换)
( type ) expr 其中:type expr 要转换为的类型名。 expr 一个表达式。转换显式调用从 expr 类型到 type 类型的转换运算符;如果未定义这样的转换运算符,则该转换将失败。
12.自增自减操作符
自增操作符++对变量的值加1,而自减操作符--对变量的值减1。此操作符有前后缀之分。对于前缀操作符,遵循的原则是“先增减,后使用”,而后缀操作符则正好相反,是“先使用,后增减”
using System;
class MikeCat
{
public static void Main()
{
double x,y;
x=1.5;
Console.WriteLine(++x);//自增后等于2.5
y=1.5;
Console.WriteLine(y++);//先显示1.5后自增
Console.WriteLine(y);//自增后等于2.5
}
}
13.as 运算符
as 运算符用于执行可兼容类型之间的转换。as 运算符用在以下形式的表达式中:expression as type 其中: expression 引用类型的表达式。type 引用类型。
as 运算符类似于类型转换,所不同的是,当转换失败时,as 运算符将产生空,而不是引发异常。在形式上,这种形式的表达式:
expression as type 等效于:
expression is type ? (type)expression : (type)null
只是 expression 只被计算一次。
请注意,as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来代替其执行。
using System;
class MyClass1
{
}
class MyClass2
{
}
public class IsTest
{
public static void Main()
{
object [] myObjects = new object[6];
myObjects[0] = new MyClass1();
myObjects[1] = new MyClass2();
myObjects[2] = "hello";
myObjects[3] = 123;
myObjects[4] = 123.4;
myObjects[5] = null;
for (int i=0; i<myObjects.Length; ++i)
{
string s = myObjects[i] as string;
Console.Write ("{0}:", i);
if (s != null)
Console.WriteLine ( "@#" + s + "@#" );
else
Console.WriteLine ( "not a string" );
}
}
}
输出
0:not a string
1:not a string
2:@#hello@#
3:not a string
4:not a string
5:not a string
14.new 操作符
new操作符用于创建一个新的类型实例,有三种形式:
A:对象创建表达式,用于创建一个类类型或值类型的实例。
B:数组创建表达式,用于创建一个数组类型实例。
C:委托创建表达式,用于创建一个新的委托类型实例。
15.typeof操作符
typeof操作符用于获得系统原型对象的类型。
using System;
class MikeCat
{
public static void Main()
{
Console.WriteLine(typeof(int));
Console.WriteLine(typeof(System.Int32));
}
}//结果:System.Int32 System.Int32
//表明int和System.Int32是同一个类型
c#中用GetType()方法获得一个表达式在运行时的类型
using System;
class MikeCat
{
public static void Main()
{
int r=3;
Console.WriteLine("圆的面积等于{0}",r*r*Math.PI);
Console.WriteLine("类型是{0}",(r*r*Math.PI).GetType());
}
}//圆的面积等于28.2743338823081
//类型是System.Double
16.sizeof操作符
sizeof操作符获得一个值类型的字节大小
using System;
class MikeCat
{
unsafe public static void SizesOf()
{
Console.WriteLine("short的大小是{0}",sizeof(short));
Console.WriteLine("int的大小是{0}",sizeof(int));
Console.WriteLine("long的大小是{0}",sizeof(long));
}
public static void Main()
{
SizesOf();
}
}//short 的大小是2;int的大小是4;long的大小是8;
17.checked和unchecked操作符
在进行整型算术运算或从一种整型显示转换到另外一种整型时,有可能产生溢出。
检查这种溢出c#中有两种处理方式:
第一:在编译时设置溢出校验选项(溢出校验默认是禁用的):
csc /checked test.cs //这个我们在前面有所介绍
第二:使用checked和unchecked操作符来确定是否进行溢出校验。即使编译时禁用溢出校验,计算时也同样引发异常。
using System;
class MikeCat
{
public static void Main(string[] args)
{
long factorial=1;
long num=Int64.Parse(args[0]);
for(long cur=1;cur<=num;cur++)
{
checked{factorial*=cur;}
}
Console.WriteLine("{0}的阶乘是{1}",num,factorial);
}
}//test.exe 3 3的阶乘是6
unchecked操作符与checked操作符正好相反,即使溢出,被unchecked操作符所括住的代码也不会引发异常。
各个操作符的优先级我就不在这里多说了。主要是手累。呵呵。仍然和以前c++的优先级相似。详细可参看MSDN。感谢大家关注本教程,欢迎访问老猫的理想BLOG。
下一篇:Csharp+Asp.net系列教程(四)(1) >>
相关文章:
- · ASP.NET中根据XML动态创建并使用WEB组件(二)
- · ASP.NET中根据XML动态创建并使用WEB组件(一)
- · 开发基于Web的CSS设计器
- · 用ImessageFilter接口实现截获键盘消息
- · 窗体启动特效
- · Microsoft Visual Studio .NET 2003制作安装程序
- · 实现基于事件通知的.Net套接字
- · Programming MS Office 2000 Web Components第一章第三节
- · WalkThrough : SharePoint WebPart入门指南全5辑
- · .Net WinForm学习笔记
- · 在IE浏览器中使用Windows窗体控件(三)
- · 在IE浏览器中使用Windows窗体控件(二)
- · 在IE浏览器中使用Windows窗体控件(一)
- · 基于ASP.NET实现全球化
- · Asp.net动态生成html页面
- · 可以搜索的ComboBox----
- · 实战 .Net 数据访问层 - 5
- · 实战 .Net 数据访问层 - 4
- · 实战 .Net 数据访问层 - 3
- · 实战 .Net 数据访问层 - 2
- · .Net里的序列化
- · 从在 Internet Explorer 中使用 Windows 窗体控件开始谈Smart Client
- · 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(4)
- · 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(3)
- · 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(2)
- · 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(1)
- · Csharp+Asp.net系列教程(三)
- · Csharp+Asp.net系列教程(二)
- · 设计模式之代理模式(Proxy)
- · 弹出对话框的同时保持页面的显示
- · ASP.Net中使用VB.Net调用存储过程并得到返回值
- · 改变文本框、按钮样式函数
- · 使用Asp.Net中的XmlValidatingReader来验证XML Schema.
- · 用asp.net 实现“九连环” 小游戏
- · ASP.Net中使用VB.Net调用存储过程并得到返回值
- · ASP.NET 的亲密朋友之--javascript
- · 如何开发一个可复用的软件系统
- · 在ASP.NET中显示进度条
