<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      C#圖文說明教程第二課:表達式,分類與變量

      [摘要]本節課將介紹C# 語言的表達式,類型和變量。本節課要達到如下幾個目的:1.了解什么是"變量"2.學習C#的簡單類型3.對C#表達式有個初步的了解4.了解什么是String類型5.學習如何使用數組"變量"僅僅是數據的存儲位置。你可以把數據存放到其中,或者從中取...
      本節課將介紹C# 語言的表達式,類型和變量。本節課要達到如下幾個目的:
      1.了解什么是"變量"

      2.學習C#的簡單類型

      3.對C#表達式有個初步的了解

      4.了解什么是String類型

      5.學習如何使用數組

      "變量"僅僅是數據的存儲位置。你可以把數據存放到其中,或者從中取出來作為C#表達式的一部分。變量中所存放的數據的含義是通過類型來控制的。

      C#是個強類型(???)的語言。這樣,一切對變量的操作都是針對該變量的類型而進行的。為了保證變量中所存放數據的合法性和一致性,對不同類型的變量進行操作有相應的規則。

      C#語言的簡單類型包含布爾類型和三種數值類型:整型,浮點型和小數。

      1.清單1-1 顯示布爾值:Boolean.cs

      using System;
      class Booleans {
      public static void Main() {
      bool content = true;
      bool noContent = false;
      Console.WriteLine("It is {0} that C# Station provides C# programming language content.", content);
      Console.WriteLine("The statement above is not {0}.", noContent);
      }
      }

      說明

      1.在清單1-1中,布爾值作為句子的一部分輸出到控制臺中。"bool"類型的取值要么為真,要么為假。程序運行結果如下:

      >It is True that C# Station provides C# programming language content.
      >The statement above is not False.

      2.下列表格顯示了各種整數類型,所占字節大小和所能表示的數的范圍。

      類型 位 范圍
      sbyte 8 -128 to 127
      byte 8 0 to 255
      short 16 -32768 to 32767
      ushort 16 0 to 65535
      int 32 -2147483648 to 2147483647
      uint 32 0 to 4294967295
      long 64 -9223372036854775808 to 9223372036854775807
      ulong 64 0 to 18446744073709551615
      char 16 0 to 65535

      在對整數進行計算時,除了字符類型之外,上述這些類型都是適合的。字符類型代表一個Unicode字符。正如在上表中可以看到的,你可以從中選擇適合你需要的類型。

      3.下列表格顯示了單精度類型,雙精度類型和小數類型的數據,它們所占的字節,精度和所能表示的數的范圍。

      類型 位 精度 范圍
      float 32 7 digits 1.5 x 10-45 to 3.4 x 1038
      double 64 15-16 digits 5.0 x 10-324 to 1.7 x 10308
      decimal 128 28-29 decimal places 1.0 x 10-28 to 7.9 x 1028

      當你需要進行涉及到分數的操作時,就需要用到實型,然而,對于金融財經方面的數據的計算,小數類型也許是你最好的選擇。

      4.表達式計算之后可以得出結果。這些表達式把變量和運算符一同放到語句中。下表列出了C#允許的運算符,優先級和結合性。

      分類 運算符 結合性
      初級 (x) x.y f(x) a[x] x++ x-- new typeof sizeof checked unchecked 左
      單目 + - ! ~ ++x --x (T)x 左
      乘法等 * / % 左
      加法等 + - 左
      移位 << >> 左
      關系 < > <= >= is 左
      相等 == != 右
      邏輯與 & 左
      邏輯異或 ^ 左
      邏輯或 左
      條件與 && 左
      條件或 左
      條件 ?: 右
      賦值等 = *= /= %= += -= <<= >>= &= ^= = 右

      左結合意味著運算符是從左到右進行運算的。右結合意味著所有的運算是從右到左進行的,如賦值運算符,要等到其右邊的計算出來之后,才把結果放到左邊的變量中。

      2.清單 1-2. 單目運算符: Unary.cs

      using System;
      class Unary {
      public static void Main() {
      int unary = 0;
      int preIncrement;
      int preDecrement;
      int postIncrement;
      int postDecrement;
      int positive;
      int negative;
      sbyte bitNot;
      bool logNot;
      preIncrement = ++unary;
      Console.WriteLine("Pre-Increment: {0}", preIncrement);
      preDecrement = --unary;
      Console.WriteLine("Pre-Decrement: {0}", preDecrement);
      postDecrement = unary--;
      Console.WriteLine("Post-Decrement: {0}", postDecrement);
      postIncrement = unary++;
      Console.WriteLine("Post-Increment: {0}", postIncrement);
      Console.WriteLine("Final Value of Unary: {0}", unary);
      positive = -postIncrement;
      Console.WriteLine("Positive: {0}", positive);
      negative = +postIncrement;
      Console.WriteLine("Negative: {0}", negative);
      bitNot = 0;
      bitNot = (sbyte)(~bitNot);
      Console.WriteLine("Bitwise Not: {0}", bitNot);
      logNot = false;
      logNot = !logNot;
      Console.WriteLine("Logical Not: {0}", logNot);
      }
      }

      說明

      1.當計算表達式的時候,在后置增一和后置減一運算符進行運算時,先返回其值,再進行增一或者減一運算。當使用前置加號和減號運算符進行運算時,是先進行增一或者減一的運算,然后再返回其結果值。

      2.在清單1-2中, 變量unary初始化為0,進行++x 運算時,"unary"的值加1,再把其值1賦給"preIncrement"變量。在進行--x運算時,先把"unary"的值減到0, 再把值0賦給"preDecrement"變量。

      3.進行x-運算時,先把"unary"的值0賦給"postDecrement" 變量,之后再把"unary"減到-1。進行x++運算時,先把"unary"的值-1賦給"postIncrement"變量,之后再對"unary"加1,使得"unary"變量現在的值為0。

      4.變量"bitNot"初始值為0,進行按位取反運算,本例中,數0表示為二進制"00000000",按位取反之后變為-1,其二進制表示為"11111111"。

      5.了解一下表達式"(sbyte)(~bitNot)", 任何對類型sbyte, byte, short 或者 ushort 類型數據的運算,返回結果都是整數。要把值賦給bitNot變量,我們必須使用cast (類型)運算符(強制類型轉換),其中Type表示你希望轉換成的類型(本例中為sbyte)。 Cast運算符把大范圍類型的數據轉換為小范圍類型的數據時,須特別謹慎,因為此時有丟失數據的危險。一般來說,把小類型的數據賦給大類型變量,并沒有問題, 因為大范圍數據類型的變量具有足夠的空間存放小類型數據。 注意在signed 和unsigned類型之間進行Cast運算時,也存在此類危險。 許多初級程序設計教程對變量的位表示作出了很好的講解,同時也介紹了直接進行Cast運算的危險。

      邏輯非(!)運算符可以處理布爾變量值。本例中,"logNot"變量從false 變為true。

      上述程序的輸出結果如下:

      >Pre-Increment: 1
      >Pre-Decrement 0
      >Post-Decrement: 0
      >Post-Increment -1
      >Final Value of Unary: 0
      >Positive: 1
      >Netative: -1
      >Bitwise Not: -1
      >Logical Not: True

      3.清單 1-3. 二元運算符 Binary.cs

      using System;
      class Binary {
      public static void Main() {
      int x, y, result;
      float floatResult;
      x = 7;
      y = 5;
      result = x+y;
      Console.WriteLine("x+y: {0}", result);
      result = x-y;
      Console.WriteLine("x-y: {0}", result);
      result = x*y;
      Console.WriteLine("x*y: {0}", result);
      result = x/y;
      Console.WriteLine("x/y: {0}", result);
      floatResult = (float)x/(float)y;
      Console.WriteLine("x/y: {0}", floatResult);
      result = x%y;
      Console.WriteLine("x%y: {0}", result);
      result += x;
      Console.WriteLine("result+=x: {0}", result);
      }
      }

      說明

      清單1-3 演示了二元操作符的幾個例子。加法(+),減法(-),乘法(*)和除法(/)的運算結果,就是我們通常進行的的四則運算的結果。

      因為"floatResult"變量是浮點運算類型,所以整型變量"x"和"y" 被強制轉換成浮點類型來計算FloatResult。

      這里有個求余數的運算符,兩個操作數相除,返回余數。

      最后一條語句給出了另外一種賦值形式,這里用了(+=)運算符.無論什么時候你使用(+=)運算符,那么這個二進制運算符就應該在運算符左右兩邊都進行運算,然后把值賦給左邊的參數。本語句相當于"result = result + x",并返回同樣的值。

      前面的課程中,你看到的使用次數較多的一種類型是"string" (字符串)類型。"string"類型是由包含在引號內的Unicode編碼的字符構成。例如"This is a string."

      另外一種數據類型是數組。數組可以看成是同種類型的元素構成的集合。當聲明數組時,你要指定類型名,數組名,維數和數組大小。

      4.清單 1-4. Array Operations: Array.cs

      using System;
      class Array {
      public static void Main() {
      int[] myInts = { 5, 10, 15 };
      bool[][] myBools = new bool[2][];
      myBools[0] = new bool[2];
      myBools[1] = new bool[1];
      double[,] myDoubles = new double[2, 2];
      string[] myStrings = new string[3];
      Console.WriteLine("myInts[0]: {0}, myInts[1]: {1}, myInts[2]: {2}", myInts[0], myInts[1], myInts[2]);
      myBools[0][0] = true;
      myBools[0][1] = false;
      myBools[1][0] = true;

      Console.WriteLine("myBools[0][0]: {0}, myBools[1][0]: {1}", myBools[0][0], myBools[1][0]);
      myDoubles[0, 0] = 3.147;
      myDoubles[0, 1] = 7.157;
      myDoubles[1, 1] = 2.117;
      myDoubles[1, 0] = 56.00138917;
      Console.WriteLine("myDoubles[0, 0]: {0}, myDoubles[1, 0]: {1}", myDoubles[0, 0], myDoubles[1, 0]);
      myStrings[0] = "Joe";
      myStrings[1] = "Matt";
      myStrings[2] = "Robert";
      Console.WriteLine("myStrings[0]: {0}, myStrings[1]: {1}, myStrings[2]: {2}", myStrings[0], myStrings[1], myStrings[2]);
      }
      }

      說明

      清單 1-4 演示了數組的各種不同實現方法。第一個例子是"myInts"數組,它在聲明的同時進行了初始化。

      接著是個二維數組,可以把它理解為數組的數組。我們需要使用"new"運算符來實例化初始數組的大小,之后,再對每個子數組使用new運算符。

      第三個例子是個二維數組。數組可以是多維的,每一維可以通過逗號隔開,也必須用"new"運算符進行實例化。

      最后定義了一個一維的字符串數組。

      每種情況下,對于數據元素的訪問可以通過引用元素的位置(下標)來進行。數組的大小可以是任何整型值。其下標從0開始。

      小結
      到現在為止,你已經了解了C# 的變量,簡單數據類型,數組和字符串。我們還學習了如何用C#的運算符構成表達式。




      日韩精品一区二区三区高清