常量與變數
阿新 • • 發佈:2019-02-16
一、常量:文字常量,通常表示常量值,宣告時必須初始化
int a=123;
float b=1.23F;
<p>string s="C#.NET程式設計";</p>
二、變數:變數是被用來儲存特定型別的資料;如有需要,可以隨時改變變數中所儲存的資料值;變數具有名稱、型別和值。
三、變數型別:
1、值型別:直接儲存資料,儲存在堆疊中。
主要分為:簡單型別(Simple types)、結構型別(Struct types)列舉型別(Enumeration types)等。
(1)簡單型別:整數型別、字元型別、布林型別、浮點型別、十進位制型別;
整數型別:代表沒有小數點的整數數值,包括byte、ushort、uint、ulong。
字元型別:採用Unicode字符集,一個Unicode標準長度為16位。
宣告和使用
char ch1='x';
布林型別:常用於邏輯運算,bool值與整數值不能相互轉換。如果變數宣告為bool型別,只能使用true或者false。
bool b1=true;
bool b2=0; 浮點型別:處理含有小數的數值資料,浮點型別主要包含float和double型別;
(2)結構型別:和類一樣,可以宣告建構函式、資料成員、方法、屬性等。不能派生類,不能繼承,結構成員不能被訪問許可權控制字protected修飾,也不能被virtual、abstract修飾結構方法。
using System; struct point //結構定義 { public int x,y;//結構中可以宣告建構函式和方法,變數不能賦值。 } class test { static void Main() { point p1; p1.x=166; p1.y=111; point p2; p2=p1; point p3=new point() } }
(3)列舉型別:列舉型別是一種使用者定義的型別,只有使用者定義後才能使用它
Enum 名稱{列舉表};
enum Color
{
Red,
Green,
Blue,
Max = Blue
}
顯示一個列舉,其中的兩個列舉成員(Blue 和 Max)具有相同的關聯值。
2、引用型別:儲存資料的引用,在託管堆中為引用變數型別分配記憶體。
主要分為:類、介面、委託和陣列
(1)類:如object類為所有類的基類;不指定的話,就預設object為基類。
public class 類名
{
類體;
}
(2)介面:介面包含的成員只有方法,屬性,索引器(有參屬性),事件四種成員;方法的實現是在實現介面的類中完成的。
interface ISampleInterface
{void SampleMethod();}class ImplementationClass : ISampleInterface{// Explicit interface member implementation:void ISampleInterface.SampleMethod(){// Method implementation.}static void Main(){// Declare an interface instance.ISampleInterface obj = new ImplementationClass();// Call the member.obj.SampleMethod();}}
(3)委託:目的通過建立委託型別物件去呼叫函式。
宣告格式:
修飾符 delegate 函式返回型別 定義的委託識別符號(函式形參列表);
如:public delegate int MyDelegate();
(4)陣列:一組型別相同的有序陣列,陣列名、資料元素型別、維數。
int[] arr;
float[] farr;
double[] darr;
string[] sarr;
int[,] arr2;
float[,,]farr2;
陣列的初始化:int[] arr=new int[3]定義一個3維陣列;
交錯陣列:陣列的元素還是陣列。
int[][]arr=new int[2][];//定義陣列arr,有兩個元素,每個元素都是一個數組;
arr[0]=new int[]{1,2,3};//定義第一個元素,是一個數組;
arr[1]=new int[]{1,2,3,4,5,6};//每個元素的陣列可以不等長,arr[1][1]=2;
複製陣列:
int[]arr={1,2,3,4,5,6};
int[]arr2=arr;
四、值型別與引用型別的區別
1、對於值型別的例項,如果作為方法中的區域性變數,則被建立線上程棧上。如果該例項作為型別的成員,則作為型別成員的一部分,連同其它型別欄位存放在託管堆上。
2、引用型別的例項建立在託管堆上。