程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 字段、屬性、成員變量

C# 字段、屬性、成員變量

編輯:C#入門知識

C# 字段、屬性、成員變量


引言:

C#與java,C++中的這些基本概念略有不同。因為容易混淆,所以這裡總結下區別。希望能對初學者有幫助!

一.定義與作用

1.字段(field):是C#類級別定義的,和方法同一級別。

一般用來類內部進行訪問,充當一種類中的"全局變量"角色;或者配合屬性來使用

2.屬性:同樣是C#類級別定義的,一般是供外部類訪問的。

3.成員變量:"全局變量",在類中定義的變量,區別於在方法中定義的局部變量。它與字段屬性不是同一級別概念,字段,屬性都可以叫做成員變量。

二.使用

class Basic

{

private string FieldVar;//這是字段,在當前類中調用

private string fieldVarForProperty;//這是字段,配合屬性用

public string FieldVarForProperty//這是屬性

{

get{return fieldVarForProperty;}//屬性中使用了字段

set{ fieldVarForProperty=value;}

}

}

這裡可以看出:字段就是變量,而屬性則類似於方法。屬性能夠使得外部類訪問當前類的字段。這裡存在一些問題:

1.有人說,那我們可以將字段定義為public,那外部不就可以訪問了。

確實可以訪問,但是違背了類的設計原則。面向對象要求對數據進行封裝。如果這裡我們將字段定義為public,來使外部訪問,那麼外部就會隨意的破壞我們的字段。所以不這麼做

2.有人說,屬性為什麼要配合字段使用呢

直接定義成下面這樣不就可以了

public string FieldProperty

{

get {return FieldProperty;}

set{FieldProperty=value;}

}

編譯確實沒有問題,能夠通過。但是思考一下,當我們調用get/set方法時,在方法體內又使用了FieldProperty屬性,是個死循環,程序會down掉的

注:C#是有自動實現的屬性的,就是說

public string FieldProperty

{

get;set;

}

C#會自動為你聲明一個私有字段的

三.字段與屬性區別

1. 字段總是可讀可寫(readonly關鍵字除外)屬性可讀可寫(至少要有一樣)
2.字段總是立即執行,效率高。屬性還需要調用方法,效率低
3.字段能作為ref,out參數,屬性不可以

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved