C#入門筆記
8.28開始看劉鐵猛的視頻,到9.22看完,大概覺得自己入門了,對OOP也有一定了解了,稍微寫點筆記,當復習了,
型別與變數
資料型別
[1]是資料在記憶體中存盤時的“型號”,不同的資料型別有不同的“大小”——在記憶體中占用的空間,想知道某個資料型別在記憶體中占的大小,可以用函式sizeof去查看,C#是強型別語言,某個變數一旦被定義,如果不經過強制型別轉換,它的型別永遠不會改變,下面用一段代碼證明:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SomeNotes
{
class Program
{
static void Main(string[] args)
{
int a = 100;
double b = 200;
string c = "Jay";
Console.WriteLine(a.GetType());
Console.WriteLine(b.GetType());
Console.WriteLine(c.GetType());
}
}
}
結果為: System.Int32
System.Double
System.String
下面試著進行強制型別轉換:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SomeNotes
{
class Program
{
static void Main(string[] args)
{
double a = 12.34;
int b = (int)a;
decimal c = (decimal)a;
Console.WriteLine(b);
Console.WriteLine(c);
}
}
}
這個例子里面double型別的 a 被強制轉換成了int型別,然后再把值傳給 b ,輸出結果為12,小數點后的數字丟失,
各個型別的精度范圍不一樣,如果用精度更精細的資料型別轉換成精度不高的資料型別,是一定會發生資料丟失的,但是精度低的資料型別轉換為精度高的資料型別則沒有影響,
比如double型別的 a 被強制型別轉換成了decimal型別,然后再把值傳給 c ,輸出結果為12.34,完全沒有影響,
在C#中,有五大資料型別:類(class)、結構體(structure)、列舉(enumeration)、介面(interface)、委托(delegate),其中類、介面、委托是參考型別(reference type),結構體和列舉是值型別(value type),
變數
其實剛剛的兩個例子當中就出現變數了,就是 a、b、c,變數實際上表示了存盤位置,并且每個變數都有一個型別,以決定什么樣的值能夠存入變數,變數一共有7種:靜態變數、實體變數、陣列元素、值引數、參考引數、輸出引數、區域變數,其實狹義上的變數指的就是區域變數,因為其他種類的變數都有自己的約定的名稱,簡單的說,區域變數就是方法體(函式體)里面宣告的變數,
* 值型別的變數沒有實體,所謂的“實體”與變數合二為一
* 參考型別的變數里儲存的資料是物件的記憶體地址
在C#中變數有它的默認值,比如bool型別的默認值是false、double型別的默認值是 0.0d 等等,這些建議百度自己搜,
變數還有常量型別,指的是值不可被改變的變數,const和readonly的不同之處在于,const在宣告的時候就要賦值,readonly可以先宣告,后續賦值;相同之處在于,兩者一旦被賦值,就不可被更改,
摸了,有空再更新
Data Type: A data type is a homogeneous collection of values, effectively presented, equippde with a set of operations which manipulate these values. ??
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/119837.html
標籤:C#
上一篇:Windows7、10的熱鍵屏蔽
下一篇:C#型別與變數
