標識符號
標識符是用來識別類、變量、函數(shù)或任何其它用戶定義的項目。在 C# 中,類的命名必須遵循如下基本規(guī)則:
- 標識符必須以字母、下劃線或 @ 開頭,后面可以跟一系列的字母、數(shù)字( 0 - 9 )、下劃線( _ )、@。
- 標識符中的第一個字符不能是數(shù)字。
- 標識符必須不包含任何嵌入的空格或符號,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ’ / \。
- 標識符不能是 C# 關鍵字。除非它們有一個 @ 前綴。 例如,@if 是有效的標識符,但 if 不是,因為 if 是關鍵字。
- 標識符必須區(qū)分大小寫。大寫字母和小寫字母被認為是不同的字母。
- 不能與C#的類庫名稱相同。
關鍵字
關鍵字是 C# 編譯器預定義的保留字。這些關鍵字不能用作標識符,但是,如果想使用這些關鍵字作為標識符,可以在關鍵字前面加上 @ 字符作為前綴。
在 C# 中,有些關鍵字在代碼的上下文中有特殊的意義,如 get 和 set,這些被稱為上下文關鍵字(contextual keywords)。下表列出了 C# 中的保留關鍵字(Reserved Keywords)和上下文關鍵字(Contextual Keywords):
保留關鍵字 | |||||
---|---|---|---|---|---|
abstract | as | base | bool | break | byte |
case | catch | char | checked | class | const |
continue | decimal | default | delegate | do | double |
else | enum | event | explicit | extern | false |
finally | fixed | float | for | foreach | goto |
if | implicit | in | int | interface | internal |
is | lock | long | namespace | new | null |
object | operator | out | override | params | private |
protected | public | readonly | ref | return | sbyte |
sealed | short | sizeof | stackalloc | static | string |
struct | switch | this | throw | true | try |
typeof | uint | ulong | unchecked | unsafe | ushort |
using | virtual | void | volatile | while |
上下文關鍵字 | |||||
---|---|---|---|---|---|
add | alias | ascending | descending | dynamic | from |
get | global | group | into | join | let |
orderby | partial (type) | partial (method) | remove | select | set |
數(shù)據(jù)結構
在 C# 中,變量分為以下三種類型:
1、值類型(Value types)
值類型變量可以直接被分配一個值。
值類型是從類 System.ValueType 中派生的,直接包含數(shù)據(jù),例如:int、char、float,它們分別存儲數(shù)字、字符、浮點數(shù)。當聲明一個 int 類型時,系統(tǒng)分配內(nèi)存來存儲值。下表列出了 C# 中可用的值類型:
類型 | 描述 | 范圍 | 默認值 |
---|---|---|---|
bool | 布爾值 | True 或 False | False |
byte | 8 位無符號整數(shù) | 0 到 255 | 0 |
char | 16 位 Unicode 字符 | U +0000 到 U +ffff | ‘\0’ |
decimal | 128 位精確的十進制值,28-29 有效位數(shù) | (- 7.9 × 1 0 28 7.9 \times 10^{28} 7.9×1028 到 7.9 × 1 0 28 7.9 \times 10^{28} 7.9×1028) / 1 0 0 到 28 10^{0 到 28} 100到28 | 0.0M |
double | 64 位雙精度浮點型 | (+/-) 5.0 × 1 0 ? 324 5.0 \times 10^{-324} 5.0×10?324 到 (+/-) 1.7 × 1 0 308 1.7 \times 10^{308} 1.7×10308 | 0.0D |
float | 32 位單精度浮點型 | - 3.4 × 1 0 38 3.4 \times 10^{38} 3.4×1038 到 + 3.4 × 1 0 38 3.4 \times 10^{38} 3.4×1038 | 0.0F |
int | 32 位有符號整數(shù)類型 | -2,147,483,648 到 2,147,483,647 | 0 |
long | 64 位有符號整數(shù)類型 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L |
sbyte | 8 位有符號整數(shù)類型 | -128 到 127 | 0 |
short | 16 位有符號整數(shù)類型 | -32,768 到 32,767 | 0 |
uint | 32 位無符號整數(shù)類型 | 0 到 4,294,967,295 | 0 |
ulong | 64 位無符號整數(shù)類型 | 0 到 18,446,744,073,709,551,615 | 0 |
ushort | 16 位無符號整數(shù)類型 | 0 到 65,535 | 0 |
表達式 sizeof(type)
產(chǎn)生以字節(jié)為單位存儲對象或類型的存儲尺寸:
using System;
namespace DataTypeApplication
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Size of int: {0}", sizeof(int));
Console.ReadLine();
}
}
}
2、引用類型(Reference types)
2.1 對象(Object)類型
對象(Object)類型 是 C# 通用類型系統(tǒng)(Common Type System - CTS)中所有數(shù)據(jù)類型的終極基類。Object 是 System.Object 類的別名。所以對象(Object)類型可以被分配任何其他類型(值類型、引用類型、預定義類型或用戶自定義類型)的值。但是,在分配值之前,需要先進行類型轉換。
當一個值類型轉換為對象類型時,則被稱為裝箱;另一方面,當一個對象類型轉換為值類型時,則被稱為拆箱。
object obj;
obj = 100; // 這是裝箱
2.2 動態(tài)(Dynamic)類型
可以存儲任何類型的值在動態(tài)數(shù)據(jù)類型變量中,這些變量的類型檢查是在運行時發(fā)生的。聲明動態(tài)類型的語法:dynamic <variable_name> = value;
,例如:
dynamic d = 20;
動態(tài)類型與對象類型相似,但是對象類型變量的類型檢查是在編譯時發(fā)生的,而動態(tài)類型變量的類型檢查是在運行時發(fā)生的。
2.3 字符串(String)類型
字符串(String)類型 允許你給變量分配任何字符串值。字符串(String)類型是 System.String 類的別名,它是從對象(Object)類型派生的。字符串(String)類型的值可以通過兩種形式進行分配:引號和 @引號。
例如:
String str = "runoob.com";
一個 @引號字符串:
@"runoob.com";
C# string 字符串的前面可以加 @(稱作"逐字字符串")將轉義字符(\)當作普通字符對待,比如:
string str = @"C:\Windows";
等價于:
string str = "C:\\Windows";
@ 字符串中可以任意換行,使用換行符及縮進空格都計算在字符串長度之內(nèi)。
string str = @"<script type=""text/javascript"">
<!--
-->
</script>";
3、指針類型(Pointer types)
指針類型變量存儲另一種類型的內(nèi)存地址。C# 中的指針與 C 或 C++ 中的指針有相同的功能。聲明指針類型的語法:type* identifier
,例如:
char* cptr;
int* iptr;
4、類型轉換
4.1 隱式類型轉換
隱式轉換是指將一個較小范圍的數(shù)據(jù)類型轉換為較大范圍的數(shù)據(jù)類型時,可以直接通過賦值操作實現(xiàn),編譯器會自動完成類型轉換,這些轉換是 C# 默認的以安全方式進行的轉換, 不會導致數(shù)據(jù)丟失。
例如,從小的整數(shù)類型轉換為大的整數(shù)類型,從派生類轉換為基類。將一個 byte 類型的變量賦值給 int 類型的變量,編譯器會自動將 byte 類型轉換為 int 類型,不需要顯示轉換。
byte b = 10;
int i = b; // 隱式轉換
4.2 顯式類型轉換
顯式類型轉換(目標類型) 表達式
,即強制類型轉換。
顯式轉換是指將一個較大范圍的數(shù)據(jù)類型轉換為較小范圍的數(shù)據(jù)類型時,或者將一個對象類型轉換為另一個對象類型時,需要使用強制類型轉換符號進行顯示轉換,強制轉換會造成數(shù)據(jù)丟失。
例如,將一個 int 類型的變量賦值給 byte 類型的變量,需要顯示轉換。
int i = 10;
byte b = (byte)i; // 顯式轉換,需要使用強制類型轉換符號
4.3 類型轉換方式
除了上述兩種方式,C#還內(nèi)置了一些方法(函數(shù))來實現(xiàn)數(shù)據(jù)類型轉換:
序號 | 方法 & 描述 |
---|---|
1 | ToBoolean:如果可能的話,把類型轉換為布爾型。 |
2 | ToByte:把類型轉換為字節(jié)類型。 |
3 | ToChar:如果可能的話,把類型轉換為單個 Unicode 字符類型。 |
4 | ToDateTime:把類型(整數(shù)或字符串類型)轉換為日期-時間結構。 |
5 | ToDecimal:把浮點型或整數(shù)類型轉換為十進制類型。 |
6 | ToDouble:把類型轉換為雙精度浮點型。 |
7 | ToInt16:把類型轉換為 16 位整數(shù)類型。 |
8 | ToInt32:把類型轉換為 32 位整數(shù)類型。 |
9 | ToInt64:把類型轉換為 64 位整數(shù)類型。 |
10 | ToSbyte:把類型轉換為有符號字節(jié)類型。 |
11 | ToSingle:把類型轉換為小浮點數(shù)類型。 |
12 | ToString:把類型轉換為字符串類型。 |
13 | ToType:把類型轉換為指定類型。 |
14 | ToUInt16:把類型轉換為 16 位無符號整數(shù)類型。 |
15 | ToUInt32:把類型轉換為 32 位無符號整數(shù)類型。 |
16 | ToUInt64:把類型轉換為 64 位無符號整數(shù)類型。 |
示例代碼如下:
namespace TypeConversionApplication
{
class StringConversion
{
static void Main(string[] args)
{
int i = 75;
float f = 53.005f;
double d = 2345.7652;
bool b = true;
Console.WriteLine(i.ToString());
Console.WriteLine(f.ToString());
Console.WriteLine(d.ToString());
Console.WriteLine(b.ToString());
Console.ReadKey();
}
}
}
執(zhí)行上述代碼,將在控制臺窗口輸出如下內(nèi)容:文章來源:http://www.zghlxwxcb.cn/news/detail-788612.html
75
53.005
2345.7652
True文章來源地址http://www.zghlxwxcb.cn/news/detail-788612.html
到了這里,關于unity的C#學習——標識符號、關鍵字與數(shù)據(jù)類型及其轉換方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!