C#類的成員之Field字段的使用
字段是在類中聲明的成員變量,用來儲(chǔ)存描述類特征的值,字段可以被該類中聲明的成員函數(shù)訪問,根據(jù)字段的訪問控制,也可以在其他類中通過該類或該類的實(shí)例進(jìn)行訪問.字段可以是任意變量類型.
字段(field)是類中最常見的成員之一。字段是在類或結(jié)構(gòu)中直接聲明的任意類型的變量,C#支持靜態(tài)字段(類型字段)和實(shí)例字段。對(duì)于實(shí)例字段,其內(nèi)存在創(chuàng)建實(shí)例時(shí)動(dòng)態(tài)分配,而對(duì)于靜態(tài)字段,其內(nèi)存在類型對(duì)象創(chuàng)建時(shí)分配。
用readonly修飾符聲明的字段為只讀字段,只讀字段是特殊的實(shí)例字段,它只能在字段聲明中或構(gòu)造函數(shù)中重新賦值,在其他任何地方都不能改變字段的值。不過,反射可以修改只讀字段(沒有什么是反射改不了的)。
如果類的字段沒有賦值,則會(huì)自動(dòng)賦默認(rèn)處置,數(shù)值型為0,字符串型為空字符串。
靜態(tài)字段
靜態(tài)字段屬于類本身,并在該類的所有實(shí)例之間共享。
只能使用類名訪問靜態(tài)字段,如果按實(shí)例名稱訪問靜態(tài)字段,將出現(xiàn)CS0176編譯時(shí)錯(cuò)誤。
在類的外部必須采用如下方法引用靜態(tài)字段:”類名.靜態(tài)字段名”
實(shí)例字段
如果類中定義的字段不含有修飾符static,該字段為實(shí)例字段。
在類的外部,實(shí)例字段采用如下方法引用:”實(shí)例名.實(shí)例字段名”.
例程分析
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實(shí)例字段
? ? ? ? public int intc;//實(shí)例字段
? ? ? ? public string str;//實(shí)例字段
? ? }
? ? class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? Console.WriteLine("inta值是:" + Field.inta);
? ? ? ? ? ? Field.inta = 19;//靜態(tài)字段賦值訪問
? ? ? ? ? ? Console.WriteLine("inta賦值后是:" + Field.inta);
? ? ? ? ? ? //Field.intb;無法讀取,讀取方式錯(cuò)誤
? ? ? ? ? ? Field a = new Field();
? ? ? ? ? ? Console.WriteLine("intb值是:" + a.intb);
? ? ? ? ? ? //a.intb = 1;readonly實(shí)例字段是只讀的,修改賦值報(bào)錯(cuò)
? ? ? ? ? ? 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將excel數(shù)據(jù)轉(zhuǎn)換成dataset示例
這篇文章主要介紹了不借助第三方插件的情況下將Excel中的數(shù)據(jù)轉(zhuǎn)換成DataSet的方法,需要的朋友可以參考下2014-02-02
SQL+C#實(shí)現(xiàn)獲得當(dāng)前月的第一天與最后一天
本文分享了SQL+C#獲得當(dāng)前月的第一天與最后一天的代碼實(shí)例,代碼簡(jiǎn)潔,適合初學(xué)者參考。需要的朋友可以看下2016-12-12
c# 以類名為參創(chuàng)建父類相同的類的實(shí)例代碼
下面小編就為大家?guī)硪黄猚# 以類名為參創(chuàng)建父類相同的類的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
C#實(shí)現(xiàn)將RTF轉(zhuǎn)為HTML的示例代碼
RTF文檔即富文本格式(Rich?Text?Format)的文檔。我們?cè)谔幚砦募r(shí),遇到需要對(duì)文檔格式進(jìn)行轉(zhuǎn)換時(shí),可以將RTF轉(zhuǎn)為其他格式,如轉(zhuǎn)為DOCX/DOC、PDF或者HTML。本文將利用C#實(shí)現(xiàn)RTF轉(zhuǎn)HTML,需要的可以參考一下2022-04-04
詳解C#借助.NET框架中的XmlTextReader類讀取XML的方法
這篇文章主要介紹了詳解借助.NET框架中的XmlTextReader類讀取XML的方法,這種方式的執(zhí)行效率還是比較令人滿意的,需要的朋友可以參考下2016-04-04
使用WPF實(shí)現(xiàn)加載動(dòng)畫效果
在應(yīng)用程序加載大量數(shù)據(jù)或執(zhí)行復(fù)雜操作時(shí),為用戶提供一個(gè)良好的加載體驗(yàn)變得至關(guān)重要,加載動(dòng)畫是其中一個(gè)有效的方式,下面我們就來看看如何使用WPF實(shí)現(xiàn)簡(jiǎn)單的加載動(dòng)畫效果吧2024-03-03
C#優(yōu)雅的實(shí)現(xiàn)INotifyPropertyChanged接口
這篇文章介紹了C#實(shí)現(xiàn)INotifyPropertyChanged接口的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08

