Csharp+Asp.net系列圖文說明教程(4) (2)
發(fā)表時間:2024-02-19 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]9.[] 運算符 方括號 ([]) 用于數(shù)組、索引器和屬性,也可用于指針。 type [] array [ indexexpr ] 其中: type 類型。 array 數(shù)組。 indexexpr 索引表達式 10.(...
9.[] 運算符
方括號 ([]) 用于數(shù)組、索引器和屬性,也可用于指針。
type [] array [ indexexpr ]
其中: type 類型。 array 數(shù)組。 indexexpr 索引表達式
10.() 運算符
除了用于指定表達式中運算符的順序外,圓括號還用于指定轉(zhuǎn)換(類型轉(zhuǎn)換)
( type ) expr 其中:type expr 要轉(zhuǎn)換為的類型名。 expr 一個表達式。轉(zhuǎn)換顯式調(diào)用從 expr 類型到 type 類型的轉(zhuǎn)換運算符;如果未定義這樣的轉(zhuǎn)換運算符,則該轉(zhuǎn)換將失敗。
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 運算符用于執(zhí)行可兼容類型之間的轉(zhuǎn)換。as 運算符用在以下形式的表達式中:expression as type 其中: expression 引用類型的表達式。type 引用類型。
as 運算符類似于類型轉(zhuǎn)換,所不同的是,當(dāng)轉(zhuǎn)換失敗時,as 運算符將產(chǎn)生空,而不是引發(fā)異常。在形式上,這種形式的表達式:
expression as type 等效于:
expression is type ? (type)expression : (type)null
只是 expression 只被計算一次。
請注意,as 運算符只執(zhí)行引用轉(zhuǎn)換和裝箱轉(zhuǎn)換。as 運算符無法執(zhí)行其他轉(zhuǎn)換,如用戶定義的轉(zhuǎn)換,這類轉(zhuǎn)換應(yīng)使用 cast 表達式來代替其執(zhí)行。
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操作符用于創(chuàng)建一個新的類型實例,有三種形式:
A:對象創(chuàng)建表達式,用于創(chuàng)建一個類類型或值類型的實例。
B:數(shù)組創(chuàng)建表達式,用于創(chuàng)建一個數(shù)組類型實例。
C:委托創(chuàng)建表達式,用于創(chuàng)建一個新的委托類型實例。
15.typeof操作符
typeof操作符用于獲得系統(tǒng)原型對象的類型。
using System;
class MikeCat
{
public static void Main()
{
Console.WriteLine(typeof(int));
Console.WriteLine(typeof(System.Int32));
}
}//結(jié)果: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操作符獲得一個值類型的字節(jié)大小
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操作符
在進行整型算術(shù)運算或從一種整型顯示轉(zhuǎn)換到另外一種整型時,有可能產(chǎn)生溢出。
檢查這種溢出c#中有兩種處理方式:
第一:在編譯時設(shè)置溢出校驗選項(溢出校驗?zāi)J是禁用的):
csc /checked test.cs //這個我們在前面有所介紹
第二:使用checked和unchecked操作符來確定是否進行溢出校驗。即使編譯時禁用溢出校驗,計算時也同樣引發(fā)異常。
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操作符所括住的代碼也不會引發(fā)異常。
各個操作符的優(yōu)先級我就不在這里多說了。主要是手累。呵呵。仍然和以前c++的優(yōu)先級相似。詳細可參看MSDN。感謝大家關(guān)注本教程,歡迎訪問老