日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组...

發布時間:2025/5/22 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、程序

  • 現實生活中,程序是指完成某些事務的一種既定方法和過程,可以把程序看成是一系列動作執行過程的描述。
  • 在計算機世界,程序是指令,即為了讓計算機執行某些操作或解決某個問題而編寫的一系列有序指令的集合
  • 程序=數據結構(指程序中的特定數據類型和數據組織形式)+算法(算法是指為達到某個目的所要執行的操作步驟)

二、標示符

  • 標識符用來表示程序中的一個特定元素,如類名、方法名、變量名、項目名等等
  • 標識符可以是字母、數字、下劃線及“@”,但是必須以字母、下劃線及@開頭,不能以數字開頭
  • 標識符嚴格區分大小寫
  • 可以使用中文做為標識符,但不建議使用
  • 不能使用關鍵字做標識符
  • 對于類名和方法名的標識符,一般將每個單詞的首字母大寫,如StudentInfo;字段及變量名首單詞的首字母小寫,其他單詞首字母大寫

三、常量

  常量使用const關鍵字來定義,常量在聲明時必須賦值,且以后不能再對其賦值 eg:const int a = 10;

四、數據類型

C#中的數據可以分為兩大類:值類型(Value Type)和引用類型(Reference Type)。

值類型包括: 結構體(數值類型,bool型,用戶定義的結構體),枚舉,可空類型

引用類型包括: 數組,接口,委托,類(用戶自定義類、String類、Object類)

值類型的對象,繼承自System.ValueType類(此類的對象卻是引用類型的),內容直接儲存在棧上(以及MSDN中提到的“或在結構中以內聯方式分配的”——“or allocated inline in a structure”);引用類型的對象,其內容存儲于堆上,棧上的相應變量名下只存儲該處的堆地址,長度為4字節/32位(32位操作系統)或者8字節/64位(64位操作系統)。

值類型的對象不能為null。不能從已有的值類型派生新的數據類型。

棧的特點:存放數據類型(值類型),其優點:比在堆上分配空間更快;用完之后立即自動釋放;賦值方便(使用等號)

堆的特點:存放引用類型。

值類型的數據類型全部繼承自System.ValueType類,它們又分為以下幾類:

C#系統自定義了13種數值類型的數據類型:
整型 9種:byte, short, int(系統默認), long sbite, ushort, uint, ulong,char? ----類型裝換Convert 類

?名稱

值范圍

系統名稱

屬于CLS

占用內存長度

byte

028-1(128)

System.Byte

Yes

1字節/8

sbyte

-2727-1

System.SByte

No

1字節/8

ushort

0216-1(65535)

System.UInt16

No

2字節/16

short

-215215-1

System.Int16

Yes

2字節/16

char

\0000\ffff

System.Char

Yes

2字節/16

uint

0232-1(4.29×109)

System.UInt32

No

4字節/32

int

-231231-1

System.Int32

Yes

4字節/32

ulong

0264-1(1.84×1019)

System.UInt64

No

8字節/64

long

-263263-1

System.Int64

Yes

8字節/64

浮點型3種:float, double(系統默認), decimal

?

名稱?

值范圍

系統名稱

屬于CLS

精度

占用內存長度

實例

float(單精度)

±1.5×10-45±3.4×1038

System.Single

Yes

7

4字節/32

float f = 3.14f?

double(雙精度)

±5.0×10-324±1.7×10308

System.Double

Yes

1516

8字節/64

double d = 2.14?

decimal(高精度)

±1.0×10-28±7.9×1028

System.Decimal

Yes

2829

16字節/128

?decimal d = 2.13M

  布爾型(邏輯)1種:bool

    可能的取值為true和false,占用內存長度1字節/8位。C#中不再有類似于“零等于flase,非零int值等于true”的變換。bool型的系統名稱為System.Boolean,屬于CLS.

其他2種:
  enum 枚舉
枚舉的數據類型的聲明:[屬性(attributes)] [訪問標識(modifiers)] enum 名稱(identifier) [:基類型(base-type)] {枚舉列表(enumerator-list)} [;]
枚舉類型的本意有兩點:一是將難以記憶的整型數常量(除char外的8種整型數都可以)標記為更好理解的變量名。二是引入強類型,在需要采用整形數常量表示的變量之間建立屏障。雖然每個字符串代表了一個整形數常量,但是具體使用枚舉類數據類型的整型數常量時仍需要強制類型轉換。這個整數值在C#默認是int型的。

枚舉列表中各個變量的賦值默認是從0開始,遞加1的。
例如:enum days:int {Sat, Sun, Mon}; 取值(int)days.Sun為1 或 enum days:int {Sat=1, Sun, Mon}; 取值(int)days.Sun為2

 ?? struct 結構體

用戶自定義的值類型數據類型,和類相似也有不同(有篇博客具體介紹過);本身沒有繼承這一特點,因此與繼承相關的一切(例如抽象方法)結構體均不具備,除了兩點:所有的結構體繼承自System.Object類、結構體可以繼承(實現)接口。

?類結構體類型實例化構造方法(函數)繼承成員作參數傳遞給方法
引用類型值類型
必須通過new實例化可以不new,直接聲明,但聲明后必須賦值
方法不受限制(有、無參數均可,默認是無參)方法必須帶有參
自身繼承System.Object,可繼承(包含接口),也可被繼承除自身繼承System.ValueType外,不可繼承(除接口,通常叫做實現接口),也不可被繼承
字段聲明時可賦值(初始化)字段聲明時不可賦值,方法一般公有
傳遞的是引用(值一但修改所有指向改類值都已改變)傳遞的是實際值(值修改不會影響其它指向值,除非被ref修飾;ref修飾后傳遞引用)

     性能介紹:結構是值類型,所以會影響性能,但根據使用結構的方式,這種影響可能是正面的,也可能是負面的。正面的影響是為結構分配內存時,速度非常快,因為它們將內聯或者保存在堆棧中。在結構超出了作用域被刪除時,速度也很快。另一方面,只要把結構作為參數來傳遞或者把一個結構賦給另一個結構(例如A=B,其中A和B是結構),結構的所有內容就被復制,而對于類,則只復制引用。這樣,就會有性能損失,根據結構的大小,性能損失也不同。注意,結構主要用于小的數據結構。但當把結構作為參數傳遞給方法時,就應把它作為ref參數傳遞,以避免性能損失——此時只傳遞了結構在內存中的地址,這樣傳遞速度就與在類中的傳遞速度一樣快了。另一方面,如果這樣做,就必須注意被調用的方法可以改變結構的值。      

五、操作符

分類:

賦值操作符:復合賦值運算符:算數運算符:條件運算符:邏輯運算符:位運算符:備注:
=
+=,-=,*=,/=,%=
+,-,*,/,%(?二元運算符),++,--(?一元運算符)
>,<,>=,<=,!=,==
&&(遇假為假),||(同真為真),!
&,|,^,~,<<,>>

幾乎所有的操作符都只能操作基本數據類型,但是”=”,”==”和”!=”,

這些操作符能操作所有的對象。除此以外String類支持”+”和”+=”。

優先級:

postfix operatorsunary operatorscreation or castmultiplicativeadditiveshiftrelationalequalitybitwise ANDbitwise exclusive ORbitwise inclusive ORlogical ANDlogical OR

conditional

assignment備注

[] . (params) expr++ expr--

++expr --expr +expr -expr ~ !

new (type)expr

?* / %
?+ -?

<< >> >>>

< > <= >= instanceof

== !=
&

^

|

&&
||
?
= += -= *= /= %= &= ^= |= <<= >>= >>>=
上面的操作數優先級從上到下依次降低,同一個單元格內的優先級相同

六、循環?? 注:[]表示可有可無

  while (先判斷后執行,)  

    用法:while(循環條件){循環體}?

  其它用法:while(變量名){ case 變量值1:[執行語句] break;······default:[執行語句] break;}

  do-while (先執行一次再判斷)

    用法:do{循環體}while(循環條件);

  for (和while類似,先判斷)

    用法:for([初始化循環變量];[循環條件];[修改循環變量值]){循環體}

  foreach (遍歷)

    用法:foreach(類型 變量名 in 類型數據列表){}

  擴展:continue(跳出本次循環進行下次循環)、break(跳出整個循環)、return(跳出整個方法,可有可無返回值)

七、數組

  一維數組:類型[] 變量名 = new 類型[長度];

  多維數組(矩形數組):類型[,] 變量名 = new?類型[外長度,內長度];--注:[]里的,等于幾維減1

  交錯數組(數組的數組):類型[][] 變量名 = 類型[長度][];?

轉載于:https://www.cnblogs.com/wenmaoyu/p/3159801.html

總結

以上是生活随笔為你收集整理的1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。