1. 程式人生 > >C#基礎知識總結(二)

C#基礎知識總結(二)

摘要

  第二篇主要講:變數、連線符佔位符等、轉義字元、資料的計算、資料的轉換、try-catch的簡單熟悉、複合運算子和自加自減

一、變數
  1.資料儲存在記憶體中:記憶體叫做RAM,記憶體被分隔為一小格一小格的,每個小格有個地址。記憶體的特點是:斷電後資料丟失
  2.變數:變數代表著一塊記憶體空間,我們可以通過名稱向記憶體 存或讀資料,有變數就不需要我們記憶複雜的記憶體地址
  3.宣告整數型別,並賦值:int number = 1000;
  4.變數的簡單型別
  資料型別:
    整型:sbyte,byte:1個位元組(8位)
       short,ushort:2個位元組
       int,uint:4個位元組


       long,ulong:8個位元組
    非整型:float,decimal,double…
  非資料型別:char,string,bool…
  5.資料型別精度:
    double只有16個精度
    decimal沒有精度限制,但是一共可以儲存29位數
    decimal型別變數的宣告與賦值:decimal dec = 3.4m;
  6.宣告變數的方式
    先宣告,再賦值:
    int a;
    a = 10;
    宣告並賦值:
    int a = 10;
    宣告多個變數(多個變數名以逗號分隔,最後以分號結尾):
    int a,b,c;
  7.命名規則:Camel命名法

    變數:開頭小寫,後面每個單詞開頭大寫:studentName
    方法名或者類名:開頭大寫,後面的每個單詞開頭大寫:GetStudentName

二、賦值符、連線符、佔位符
  1.賦值符:=
    運算子有優先順序
    a=a+1;
    a先加一,然後再賦值給自己

  2.連線符:+
    +在C#中有兩種意義:
    一種是數學上的加法算術:兩邊參與運算的型別都為資料型別,則為加法
    另一種是連線的意思:兩邊參與運算的型別有一個為字串時,則為連線

  3.佔位符(在字串中使用):{0開始的數字}
    在字串中使用

三、資料的交換
  需要藉助中間變數

int a = 5
; int b = 10; int temp; temp = a; a = b; b = temp;

四、轉義字元
  我們要在字串中輸入一些特殊的字元時,如引號,回車等,需要加上轉義字元
    \n:帶邊換行
    \":代表字串中的"
    \b:backspace(刪除前一個字元)
    \\: \
  還有很多其他的轉義字元:一般是\加上其他的字元代表其他意思
  注:字串前面加@符號

    字串中的轉義符不再轉義
    字串可以多行寫
    如果在加@符號的字串中需要加字串時,兩個""代表"

五、算術
  1.算術運算子
    二元運算子:+ - * / %

  2.算術
    int型別和double算術型別計算,結果會轉化為double

    算術運算子兩邊的資料型別要一致,結果型別也是一致的
    但是當運算子兩邊型別不同時,且型別相容時,計算機自動做型別的轉換(隱式轉換)。
    且計算的結果的型別,為不丟失精度的那個型別

    不丟失資料和精度的情況才會做自動轉換
    所以decimal不能隱式轉換為double,因為decimal的精度大於double

六、型別的轉換
  1.強制轉換
    程式不允許把高精度的資料型別轉到低精度的資料型別
    如果確實需要轉換,需要用程式碼強制轉換
    格式:(目標型別)待轉換的資料
    如果強制轉換的過程中,發生了精度丟失,不是四捨五入,而是直接丟失精度資料

  2.Convert類提供了多種資料中間轉換的方法,但是Convert轉換
    不是強制轉換,而是對待轉換的資料進行加工

  3.轉換注意項
    不管是隱式轉換 還是 強制轉換,都只能是資料之間的轉換
    不能在字串和資料之間進行強制轉換,只能通過Convert類來轉換

    Convert不再僅是記憶體級別的轉換,而是考慮資料意義的轉換。Convert是一個加工、改造的過程

    一切型別都可以轉換成字串

七、try-catch的簡單熟悉
  1.try-catch使用方法
    try
    {
      程式碼
    }
    catch
    {
      程式碼
    }
  如果try中的程式碼沒有出現異常,則程式正常執行到try中的內容後,不會執行catch中的內容;如果try中的程式碼一旦出錯,try中出錯程式碼位置後面的程式碼都不會執行,程式立即跳到catch中去執行程式碼

八、習題計算(熟悉算術運算子)
  輸入一個天數,計算輸入天數有幾個月零幾周零幾天

 1 class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         //輸入天數,計算出有幾周零幾天
 6         //Console.WriteLine("請輸入需要計算的天數:");
 7         //int days = Convert.ToInt32(Console.ReadLine());
 8         //int weeks = days / 7;
 9         //int day = days % 7;
10         //Console.WriteLine($"你輸入的{days}包含{weeks}周零{day}天。");
11         //Console.ReadKey();
12 
13         //輸入天數,計算出有幾個月零幾周零幾天
14         Console.WriteLine("請輸入需要計算的天數:");
15         int days = Convert.ToInt32(Console.ReadLine());
16         int months = days / 30;
17         int weeks = ( days - 30 * months ) / 7;
18         int day = ( days - 30 * months ) % 7;
19         Console.WriteLine($"你輸入的{days}包含{months}個月零{weeks}周零{day}天。");
20         Console.ReadKey();
21     }
22 }

九、複合運算子和自加自減
  1.運算子
    一元運算子:只有一個運算元:a++,a--
    二元運算子:兩個運算元:a+b
    三元運算子:三個運算元:a>b?a:b

  2.自加
    a++是後加
    ++a是先加

  C#中一般情況下,一元運算子優先順序大於二元運算子
  int a = 3;
  int b = 3;
  int c = ++a * b++;
  c最後為12,因為是4*3

  3.複合運算子
    +-*/%和=組合稱之為複合運算子
    如:+=,-=,*=
    a=a+2;
    等效於
    a+=2;