C#類的成員之Field字段的使用
字段是在類中聲明的成員變量,用來儲存描述類特征的值,字段可以被該類中聲明的成員函數(shù)訪問,根據(jù)字段的訪問控制,也可以在其他類中通過該類或該類的實例進行訪問.字段可以是任意變量類型.
字段(field)是類中最常見的成員之一。字段是在類或結(jié)構(gòu)中直接聲明的任意類型的變量,C#支持靜態(tài)字段(類型字段)和實例字段。對于實例字段,其內(nèi)存在創(chuàng)建實例時動態(tài)分配,而對于靜態(tài)字段,其內(nèi)存在類型對象創(chuàng)建時分配。
用readonly修飾符聲明的字段為只讀字段,只讀字段是特殊的實例字段,它只能在字段聲明中或構(gòu)造函數(shù)中重新賦值,在其他任何地方都不能改變字段的值。不過,反射可以修改只讀字段(沒有什么是反射改不了的)。
如果類的字段沒有賦值,則會自動賦默認(rèn)處置,數(shù)值型為0,字符串型為空字符串。
靜態(tài)字段
靜態(tài)字段屬于類本身,并在該類的所有實例之間共享。
只能使用類名訪問靜態(tài)字段,如果按實例名稱訪問靜態(tài)字段,將出現(xiàn)CS0176編譯時錯誤。
在類的外部必須采用如下方法引用靜態(tài)字段:”類名.靜態(tài)字段名”
實例字段
如果類中定義的字段不含有修飾符static,該字段為實例字段。
在類的外部,實例字段采用如下方法引用:”實例名.實例字段名”.
例程分析
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; ? namespace 類的成員之字段 { ? ? public class Field ? ? { ? ? ? ? public static int inta;//靜態(tài)字段有關(guān)鍵字static,一般是private屬性,只能在類里訪問 ? ? ? ? public readonly int intb = 1;//readonly實例字段 ? ? ? ? public int intc;//實例字段 ? ? ? ? public string str;//實例字段 ? ? } ? ? class Program ? ? { ? ? ? ? static void Main(string[] args) ? ? ? ? { ? ? ? ? ? ? Console.WriteLine("inta值是:" + Field.inta); ? ? ? ? ? ? Field.inta = 19;//靜態(tài)字段賦值訪問 ? ? ? ? ? ? Console.WriteLine("inta賦值后是:" + Field.inta); ? ? ? ? ? ? //Field.intb;無法讀取,讀取方式錯誤 ? ? ? ? ? ? Field a = new Field(); ? ? ? ? ? ? Console.WriteLine("intb值是:" + a.intb); ? ? ? ? ? ? //a.intb = 1;readonly實例字段是只讀的,修改賦值報錯 ? ? ? ? ? ? Console.WriteLine("intc值是:" + a.intc); ? ? ? ? ? ? a.intc = 100; ? ? ? ? ? ? Console.WriteLine("intc賦值后是:" + a.intc); ? ? ? ? ? ? Console.WriteLine("str數(shù)據(jù)值是:" + a.str); ? ? ? ? ? ? a.str = "123"; ? ? ? ? ? ? Console.WriteLine("str賦值后是:" + a.str); ? ? ? ? ? ? Field b = new Field(); ? ? ? ? ? ? Console.WriteLine("intc值是:" + b.intc); ? ? ? ? ? ? b.intc = 200; ? ? ? ? ? ? Console.WriteLine("intc賦值后是:" + b.intc); ? ? ? ? ? ? Console.WriteLine("intc賦值后是:" + a.intc); ? ? ? ? ? ? Console.ReadKey(); ? ? ? ? ? } ? ? } }
到此這篇關(guān)于C#類的成員之Field字段的使用的文章就介紹到這了,更多相關(guān)C# Field字段內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# 兩種方式反編譯修改源碼(dnspy,ildasm & ilasm)
這篇文章主要介紹了C# 兩種方式反編譯修改源碼(dnspy,ildasm & ilasm),幫助大家更好的理解和使用c#語言,感興趣的朋友可以了解下2020-11-11