1. 程式人生 > >常量與變數

常量與變數

一、常量:文字常量,通常表示常量值,宣告時必須初始化

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、引用型別的例項建立在託管堆上。