Home
R
Cancel

[C# 筆記] new 關鍵字的作用?

實體化物件: 使用 new 關鍵字可以建立一個類別的實體,也就是物件。透過呼叫類別的建構子來初始化對象,並傳回對新建立對象的參考。 MyClass myObject = new MyClass(); 對於已知類型的情況下,直接打上 new() 來使用建構式建立對象。 Test test = new() { str = "a" }; 方法的重寫(Override):...

[C# 筆記] 值類型和引用類型的區別?

值類型的例子包括整數型別(如 int、float、double)、字元型別(char)、列舉型別(enum)和結構體(struct)等。 引用類型的例子包括類別、介面、委託和陣列等。 記憶體位置: 值類型資料儲存在堆疊stack上,引用類型的參考儲存在堆疊stack上,但實際資料儲存在堆積heap上。 複製行為: 值型別的賦值是實際資料的複製(預設是0...

[C# 筆記] 什麼是装箱和拆箱?

裝箱(Boxing)和拆箱(Unboxing)是與「值類型」和「引用類型」之間轉換相關的概念。 裝箱(Boxing): 裝箱是將值類型(例如 int, char, double 等)轉換為對應的參考類型(通常是 object 類型或介面類型)的過程。 /* 當值類型裝箱時,會在Heap(堆積)記憶體中建立一個對象,將值類型的值複製到這個對象中,並傳回對對象的參考。 裝箱發生在需要將值類...

[C# 筆記] byte a =255; a+=5; a 的值是多少?

在C#中,當你對byte類型的變數進行算術運算,而結果超過了byte類型能夠表示的最大值(即255)時,就會發生溢位。溢出的行為取決於它發生的上下文。 byte a = 255; a += 5; //溢位。byte 0-255 /* 如果超過了byte的最大值,它會回到最小值。 260 % 256 = 4 因此,a最終的值將為4 */ 變數a的初始值是255,當你給它加上5時,結果是...

[C# 筆記] 什麼是擴展方法?

擴充方法(Extension Methods)是C#中一種特殊的靜態方法,它允許你為現有的類別新增新的方法,而無需修改原始類別的定義。擴充方法通常用於為.NET框架中的類型添加功能,甚至是無法修改的封閉原始碼的類別。 要建立擴充方法,需要滿足以下條件: 1)擴展方法必須是靜態方法。 2)擴展方法必須包含一個關鍵字 this 作為其第一個參數,該參數指定了該方法應用於的類型。這個參數...

[C# 筆記] string 和 StringBuilder 的區別,兩者表現的比較

string 和 StringBuilder 的區別,兩者表現的比較 1. 不可變性: string 是不可變的。 string 是 .NET 中表示不可變字串的類型。這意味著一旦創建了一個 string 對象,它的值就不能被修改。如果對其進行操作,將會生成一個新的 string 對象。 (一旦創建了一個字串對象,就不能更改其內容。對字串進行修改實際上是建...

[C# 筆記] byte b = 'a'; byte c = 1; byte d = 'ab'; byte e = '好'; byte g = 256; 這些變數錯在哪?

byte b = ‘a’; byte b = 'a';//編譯錯誤 byte b = (byte)'a'; //97, a的ascii碼的值為97 這行程式碼會引發編譯錯誤。雖然字元'a'可以隱式地轉換為整數,但是將其賦值給byte類型時,需要確保其值在byte類型的範圍內(0 到 255)。字元'a'的ASCII碼值為97,這是一個在byte範圍內的值,所以可以修改為 byte b ...

[C# 筆記] 字串中 null、""、string.Empty 的區別

null、”“、string.Empty 的區別 總結的來說,這三者的區別在於: null:空值,「未分配記憶」的引用 "" 和 string.Empty:空字串,「會分配儲存空間」,表示「長度為零」的字串,而string.Empty是""的更可讀的替代。 它們之間的差異如下: null string s = null; //空值,未分配記憶空間 這表示字串變...

[C# 筆記] 判斷閏年

判斷閏年 年份能夠要400整除.(2000) 年份能夠被4整除,但不能被100整除. (2008) Console.WriteLine("**請輸入年份***"); int input = Convert.ToInt32(Console.ReadLine()); if ((input % 400 == 0) || (input % 4 == 0 && inpu...

[C# 筆記] 計算時間差距: 天換算周+天、秒換算天+時+分+秒

練習:46天是幾周零幾天? int days = 46; int weeks = days / 7; int day = days % 7; Console.WriteLine($"{days}天是{weeks}周零{day}天"); 練習:107653秒是幾天幾小時幾分鐘幾秒? /* 60*60= 3600 一小時有3600秒 3600*24 = 86400 一天有86400秒 ...