自學之C 特殊資料型別

2021-10-10 16:56:27 字數 4387 閱讀 9228

了解隱式型別、匿名型別和dynamic型別

掌握可空型別的用法

了解特性的用法

可選引數又稱預設引數

[修飾符] 返回型別 方法名 (引數1…引數n,可選引數1…可選引數n)

其中,必選引數一定會在可選引數的前面,而且在方法呼叫的時候必須要給引數,否則會發生編譯報錯。

#region bage

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using

static system.console;

using

static system.convert;

#endregion

namespace test

static

void

main

(string

args)

}}

呼叫方法時指定引數名稱

語法如下:

方法名(引數一名:引數一值…引數n名:引數n值)

示例如下:

#region bage

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using

static system.console;

using

static system.convert;

#endregion

namespace test

static

void

main

(string

args)

}}

var 變數名 = 變數值

在宣告時必須同時賦值,相當於在賦值之後var才知道自己代表的是什麼型別。

例子如下:

#region page 

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

#endregion

namespace test

public

static

void

add(

int num1,

int num2)

}}

語法:

new

不需要指定屬性型別

例子如下:

namespace test

;//除了型別名稱和無法修改值以外,其他的操作方法和類的操作方法一樣

console.

writeline

(tmp.id)

; console.

writeline

(tmp.name)

;//一般用在資料傳遞和路由

console.

readline()

;}}}

匿名型別一般用在資料傳遞和路由

除了沒有型別名稱也無法修改值以外,其他操作方法和類的操作方法相同

裡面給定的引數值相同於常量,無法更改。

#region page 

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

#endregion

namespace test

;//除了型別名稱和無法修改值以外,其他的操作方法和類的操作方法一樣

//一般用在資料傳遞和路由

dynamic d =

"string"

; console.

writeline

(d);

console.

writeline

(d +30)

; d =

123;

console.

writeline

(d);

console.

writeline

(d+30);

//是執行時決定

object obj =

123;

console.

writeline

(convert.

toint32

(obj)+30

);console.

readline()

;}}}

動態型別,在執行時決定型別,無論初始賦值給的是什麼都不會報編譯錯誤,而在使用的時候相對於同樣能儲存任何型別的object型別則不需要資料型別的顯式和隱式轉換。

雖然很好用,但是程式每在呼叫一次定義的動態型別都會給這個引數做一次型別驗證,會增加系統的效能負擔。只用在自己不知道應該是什麼型別的引數時才能使用。

system.nullable《型別》 變數名

型別?變數名

例子如下:

#region page 

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

#endregion

namespace test

static

void

main

(string

args)

;//除了型別名稱和無法修改值以外,其他的操作方法和類的操作方法一樣

//一般用在資料傳遞和路由

//dynamic d = "string";

+ 30);

//d = 123;

+30);

//是執行時決定

int? i =9;

int j =

(int

)i; console.

writeline

(i+j)

;

console.

readline()

;}}}

乙個?代表是將問號後的變數名所表示的變數變成可空型別,而兩個??表示加了個預設值。

例子如下:

#region page 

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

#endregion

namespace test

static

void

main

(string

args)

;//除了型別名稱和無法修改值以外,其他的操作方法和類的操作方法一樣

//一般用在資料傳遞和路由

//dynamic d = "string";

+ 30);

//d = 123;

+30);

//是執行時決定

int? i =

null

;//int j = i.hasvalue ? i.value : 0;//用三元運算子做了判斷,i如果沒值,就將0賦值給i;

int j = i ??9

;//兩個問號相當於獲取預設值

console.

writeline

(j);

string str =

null

;string str2 = str ?

?"10"

; console.

readline()

;}}}

C 自學筆記(三)之資料型別

在 c 中,變數分為以下幾種型別 值型別 value types 引用型別 reference types 以下 中所有型別都是值型別 值型別變數宣告後,不管是否已經賦值,編譯器為其分配記憶體。外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img mdhz8cng 1617329566...

特殊資料型別

1 結構型別 類似於c 中的struct 例如 patient.name xy patient.billing 130.12 patient.test 78 23 34 34 234 234 433 567 patient patient name xy billing 130.1200 test ...

C語言自學篇(三)。。。C 資料型別

在 c 語言中,資料型別指的是用於宣告不同型別的變數或函式的乙個廣泛的系統。變數的型別決定了變數儲存占用的空間,以及如何解釋儲存的位模式。c 中的型別可分為 1.基本型別 它們是算術型別,包括兩種型別 整數型別和浮點型別。型別 儲存大小 值範圍char 1位元組 128到127 或 0到255 un...