C#基本語法
0.類的實例化
MyPlane plane = new MyPlane(); //類的實例化
1.參數輸出語句
static void Main(string[] args) { Console.WriteLine("A:{0},a:{1}",65,97); Console.ReadLine(); }
運行結果:
A:65, a:97
當 WriteLine() 函數有多個參數時,輸出第一個參數中的內容,而第二個參數中的內容替換掉第一個參數中對應位置的占位符一起輸出。
2.System命名空間
Int 相當於 System.Int32
double 相當於 System.Double
string 相當於 System.String
Console類也是System命名空間包含的類
一般在程序的開頭添加 using System,這時int相當於System相當於System.Int32。
3.數據類型
在C#中,變量分為以下幾種類型:
-
值類型(Value types)
值類型變量可以直接分配給一個值。它們是從類 System.ValueType 中派生的。
值類型直接包含數據。比如 int、char、float,它們分別存儲數字、字符、浮點數。當您聲明一個 int 類型時,系統分配內存來存儲值。
-
引用類型(Reference types)
引用類型不包含存儲在變量中的實際數據,但它們包含對變量的引用。
換句話說,它們指的是一個內存位置。使用多個變量時,引用類型可以指向一個內存位置。如果內存位置的數據是由一個變量改變的,其他變量會自動反映這種值的變化。內置的 引用類型有:object、dynamic 和 string。
-
對象類型(Object)
裝箱和拆箱
-
動態類型(Dynamic)
-
字符串類型(String)
字符串(String)類型的值可以通過兩種形式進行分配:引號和 @引號。
C# string 字符串的前面可以加 @(稱作"逐字字符串")將轉義字符(\)當作普通字符對待,比如:
String str = @"C:\Windows";
等價於
String str = "C:\\Windows";
-
-
指針類型(Pointer types)
指針類型變量存儲另一種類型的內存地址。
聲明指針類型的語法:
type* identifier;例如:
int* a;
char* b;
4.類型轉換
隱式轉換 :C# 默認的以安全方式進行的轉換。本質是從小存儲容量數據類型自動轉換為大存儲容量數據類型,從派生類轉換為基類。
namespace TypeConvertion { class Class1 { } class Class2 : Class1 //類Class2是類Class1的子類 { } class Program { static void Main(string[] args) { int inum = 100; long lnum = inum; // 進行了隱式轉換,將 int 型(數據范圍小)數據轉換為了 long 型(數據范圍大)的數據 Class1 c1 = new Class2(); // 這里也是隱式轉換,將一個新建的 Class2 實例轉換為了其基類 Class1 類型的實例 C1 } } }
顯式轉換 :通過用戶使用預定義的函數顯式完成的,顯式轉換需要強制轉換運算符。
轉換類型的范圍大小和從屬關系和隱式轉換相反。顯式轉換可能會導致數據出錯,或者轉換失敗,甚至無法編譯成功。
double dnum = 100.1; int ifromd = (int)dnum; //double類型顯式轉換轉為int類型 Class1 c11 = new Class1(); Class2 c22 = c11 as Class2; //使用as進行顯式轉換 Console.WriteLine(c22 is Class1); Console.WriteLine(c22 is Class2);
運行結果:
FALSE
FALSE
類型之間的轉換 - Convert和Parse
string locstr = 123.ToString(); //如果要將"locstr"轉成整型數 //方法一: 用 Convert int i = Convert.ToInt16(locstr); //方法二: 用 Parse int ii = int.Parse(locstr);
Convert.ToInt32()與int.Parse()的區別
(1) 這兩個方法的最大不同是它們對 null 值的處理方法: Convert.ToInt32(null) 會返回 0 而不會產生任何異常,但 int.Parse(null) 則會產生異常。
(2) 對數據進行四舍五入時候的區別
- a. Convert.ToInt32(double value) 如果 value 為兩個整數中間的數字,則返回二者中的偶數;即 3.5 轉換為 4,4.5 轉換為 4,而 5.5 轉換為 6。不過 4.6 可以轉換為 5,4.4 轉換為 4 。
- b. int.Parse("4.5") 直接報錯:"輸入字符串的格式不正確"。
- c. int(4.6) = 4 Int 轉化其他數值類型為 Int 時沒有四舍五入,強制轉換。
(3) 對被轉換類型的區別 int.Parse 是轉換 String 為 int, Convert.ToInt32 是轉換繼承自 Object 的對象為 int 的(可以有很多其它類型的數據)。你得到一個 object 對象, 你想把它轉換為 int, 用 int.Parse 就不可以, 要用 Convert.ToInt32。
5.注
用戶輸入的東西,即 Console.ReadLine() ,一定是以字符串形式表現的。
所以需要如下代碼讀取數字:
class 測試 { static void Main(string[] args) { int a = int.Parse(Console.ReadLine()); Console.WriteLine("{0}",++a); Console.ReadKey(); } }
