C OOP篇 資料型別

2021-09-29 01:43:30 字數 1810 閱讀 3826

1.概念

1.值型別和引用型別的原理

2.執行緒棧和託管堆

3.裝箱和拆箱

裝箱:就是將乙個值型別轉換成等價的引用型別。

拆箱:跟裝箱相反的操作,將乙個已近裝箱的引用型別轉換為值型別。

4.型別判等

基本型別原理:

c#的基本型別是按照資料在計算機記憶體是如何被分配來劃分,一種是值型別(value type)基礎型別是結構,使用中記憶體儲存在棧中,一種是引用型別(reference type)基礎型別是類,使用中記憶體儲存在堆中常用關鍵字new創造空間。還有一種特殊型別,這裡稱之為簡單型別,string型別是一種簡單的引用型別,它不需要new關鍵字創造可以直接來使用,還有一些特殊的值型別(****** type)別如byte啊int等,在system.int32結構型別中定義屬性和方法在int32型別中都可以呼叫,比如:int a= 1; int b = new int();。原因是因為所有的值型別隱式繼承了system.valuetype,它是乙個類....上面不是說值型別的基礎型別是個結構嗎,在c#**中是看不到這種繼承關係的,這個關係只能通過msil**才可以看到,所以說是隱式繼承的,才會有引用型別的操作。

這裡注意的是,棧(stack)是一種先進後出的資料結構,堆(heap)是用於引用型別分配空間的區域,創造乙個物件將該物件的位址傳給棧上的變數

值型別:列舉、結構(數值型別、bool、使用者自定義結構型別)

引用型別:關鍵字定義型別(類、介面、泛型、事件、委託)、內建引用型別(字串、物件、動態型別dynamic)

裝箱:就是將乙個值型別轉換成等價的引用型別。

2.示例**

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace shuju

}public struct valuestack

}using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace shuju

; }

}public class people

}using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace shuju

; ages = pro.age;

console.writeline("年齡:", ages);}}

public class people

}

效果圖

1值型別

2.引用型別

3.執行緒及託管堆

4.**機制

MySQL 基礎篇 資料型別

給表字段指定儲存格式 約束 有效範圍,mysql主要有以下幾種資料型別 型別關鍵字 位元組無符號最小值 無符號最大值 整數tinyint10 28 1 整數smallint20 216 1 整數mediumint30 224 1 整數int40 232 1 整數bigint80 264 1 浮點數f...

C語言基礎篇 資料型別

整數 小數 單精度常量 2.3f 雙精度常量 2.3,預設為雙精度。字元型常量 用英文單引號括起來,只儲存乙個字元 a b 還有轉義字元 n t 字串常量 用英文的雙引號引起來 可以儲存多個字元 abc 1 資料型別轉換 c 語言中如果乙個表示式中含有不同型別的常量和變數,在計算時,會將它們自動轉換...

mysql基礎篇 資料型別(列屬性)

資料型別 mysql對資料進行統一的分類,統一的進行管理,更好的利用有限的空間。分三大類 數值型別 字串型別和時間日期型別。系統將數值型分為整數型和小數型。在sql中因為更多要考慮如何節省磁碟空間,所以系統將整型又細分成了5類。建立一張整型表 int m m表示顯示寬度,從左到右填充空格。搭配zer...