CTS(Common Type System) CTS 是.NET平台中所有程式語言都必須遵循的規範,它定義了一組公共的資料類型和規則,以確保不同語言之間的互通性。這意味著不同的程式語言可以使用相同的資料類型,從而實現相互溝通和互動。 CLS(Common Language Specification) CLS 是定義在CTS上的一組規範,目的是確保.NET程式語言之間的互通性。 ...
[C# 筆記] 現有一個整數 number,請寫一個方法來判斷這個整數是否是 2 的 N 次方
% (Mod) 運算 取Mod運算: 用number%2==0 if (number % 2 == 0) { //是 2 的 N 次方 } 位元運算 可以透過位元運算來判斷一個整數是否是2的N次方。如果一個整數是2的N次方,那麼它的二進位表示中只有一個1,例如,2、4、8、16等。 public class Solution { public bool IsPowerO...
[C# 筆記] const 和 readonly 有什麼不同?
都用於定義常數。主要有以下區別: 初始化位置不同。 const必須在宣告的同時賦值;readonly既可以在宣告處賦值,也可以在靜態建構方法(必須是靜態建構方法,普通建構方法不行)裡賦值。 修飾對象不同。 const即可以修飾類別的欄位,也可以修飾局部變數;readonly只能修飾類別的欄位 const是編譯時常數,在編譯時決定該值;...
[C# 筆記] 用最有效的方法算出 2 乘以 8 等於幾?
採用位元運算符 在二進位中,左移運算子 << 是將二進制數向左移動指定的位數,而乘以2的n次方的效果可以透過左移n位來實現。 因為8等於2的三次方,所以2乘以8可以透過將2左移3位來實現。這就是為什麼 2 << 3 的結果是16。 在二進位中,左移運算子 << 是將二進制數向左移動指定的位數。對於整數2,它的二進位表示是 0000 0010。 如果...
[C# 筆記] C# 中的委託是什麼?
委託(Delegate)是一種類型,它表示對一個或多個方法的引用。委託可以看作是函數指標的一種類型安全的封裝,它允許將方法作為參數傳遞給其他方法,或將方法賦值給委託變數。 .net中有很多內建的委託類型,如Action和Func,它們分別用來表示無回傳值的方法和有回傳值的方法。這些內建委託類型在泛型和非泛型形式中都可用 作用:提高方法的擴展性 C# .NET面试系列一:基础语法
[C# 筆記] int? 和 int 有什麼差別?
int? 為可空型,預設值是null,它允許具有正常整數值或 null。在需要表示缺失或未知值的情況下,可以使用 int? int 是值類型,不允許為 null,預設值是0,它總是有一個具體的整數值 int?是透過int裝箱為引用型別實現 C# .NET面试系列一:基础语法
[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時,結果是...