歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C#中的“域和屬性”

C#中的“域和屬性”

日期:2017/3/1 10:00:45   编辑:Linux編程

訪問一個類的成員變量可以有兩種方式:域、屬性。域作為Public類型的成員變量訪問,而屬性不能直接進行訪問,必須通過訪問器(Assessors)進行。

域(Field)

域的定義:域也叫成員變量,它表示存儲位置,用來保存類的各種數據信息。

下面是域的一些相關介紹:

域表示與對象或類相關聯的變量。

域的聲明中如果加上了readonly修飾符,表明該域為只讀域。對於只讀域我們只能在域的定義中和它所屬類的構造函數中進行修改。在其他情況下,域是“只讀”的。

static readonly的作用和#define、const的作用類似。區別是:const型表達式的值是在編譯時形成的,而static readonly表達式的值直到程序運行時才形成。如:

  1. Public class A
  2. {
  3. Public static readonly int X = 1;
  4. }

C/C++中未經初始化的變量是不能使用的。在C#中,系統將為每個未經初始化的變量提供一個默認值。對於所有引用類型的變量,默認值是null。所有值類型的變量的默認值是固定的。對於靜態域,類在裝載時對其進行初始化;對於非靜態域,在類的實例創建時進行初始化。在默認的初始化之前,域的值是不可預測的。

例如下面的代碼是合法的:

  1. class Test
  2. {
  3. static int a = b+ 1;
  4. static int b = a+ 1;
  5. }

實際上等價於:a = 1; b =2;

而下面的代碼則是非法的:

  1. class A
  2. {
  3. int x = 1;
  4. int y = x + 1;
  5. }

因為非靜態變量x在類A實例化以前並沒有初始化,代碼y = x + 1無法得到正確的x的值。

Copyright © Linux教程網 All Rights Reserved