c#字段德玫,屬性匪蟀,索引器,常量

c#類成員

◆常量 與類關(guān)聯(lián)的常量值
◆字段 類的變量
◆方法 類可執(zhí)行的計算和操作
◆屬性 與讀寫類的命名屬性相關(guān)聯(lián)的操作
◆索引器 與以數(shù)組方式索引類的實例相關(guān)聯(lián)的操作
◆事件 可由類生成的通知
◆運算符 類所支持的轉(zhuǎn)換和表達式運算符
◆構(gòu)造函數(shù) 初始化類的實例或類本身所需的操作
◆析構(gòu)函數(shù) 在永久丟棄類的實例之前執(zhí)行的操作
◆類型 類所聲明的嵌套類型

字段

字段

什么是字段

◆字段field是一種表示與對象或類型(類與結(jié)構(gòu)體)關(guān)聯(lián)的變量
◆字段是類型的成員宰僧,舊稱“成員變量”
◆與對象關(guān)聯(lián)的字段亦稱為“實例字段”
◆與類型關(guān)聯(lián)的字段稱為“靜態(tài)字段”,由static修飾。

字段的聲明

◆盡管字段聲明帶有分號但它不是語句
◆字段的名字一定是名詞

字段的初始化

◆無顯式初始化時琴儿,字段獲得其類型的默認值段化,所以字段永遠不會未被初始化。
◆實例字段初始化的時機是在對象創(chuàng)建時
◆靜態(tài)字段初始化的時機是在類型被加載load時

只讀字段

◆實例只讀字段
◆靜態(tài)只讀字段

using System;
using System.Collections.Generic;

namespace Test
{
    class User
    {
        //只讀實例字段
        public readonly int ID;
        //實例字段
        public int Age;
        public int Score;
        //靜態(tài)字段
        public static int AverageAge;
        public static int AverageScore;
        public static int Amount;
        //構(gòu)造函數(shù)
        public User(int id)
        {
            this.ID = id;//只讀字段只能在實例化時初始化造成,且不能賦值显熏。
            User.Amount++;
        }
        //靜態(tài)方法
        public static void ReportAmount()
        {
            Console.WriteLine(User.Amount);
        }
        public static void ReportAge()
        {
            Console.WriteLine(User.AverageAge);
        }
        public static void ReportScore()
        {
            Console.WriteLine(User.AverageScore);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            List<User> userlist = new List<User>();
            for(int i=0; i<100; i++)
            {
                User user = new User(i);
                user.Age = i;
                user.Score = i;
                userlist.Add(user);
            }

            int totalAge = 0;
            int totalScore = 0;
            foreach(var user in userlist)
            {
                totalAge += user.Age;
                totalScore += user.Score;
            }

            User.AverageAge = totalAge / User.Amount;
            User.AverageScore = totalScore / User.Amount;

            //靜態(tài)變量
            User.ReportAmount();
            User.ReportAge();
            User.ReportScore();

            Console.ReadKey();
        }
    }
}

屬性

屬性

什么是屬性

◆屬性property是一種用于訪問對象或類型的特征的成員,特征反映了狀態(tài)晒屎。
◆屬性是字段的自然擴展
從命名上看field字段更加偏向于實例對象在內(nèi)存中的布局喘蟆,property屬性更加偏向于反映現(xiàn)實世界對象的特征。
屬性對外暴露數(shù)據(jù)鼓鲁,數(shù)據(jù)可以是存儲在字段里的蕴轨,也可以是動態(tài)計算出來的。
屬性對內(nèi)則保護字段不被非法值污染
◆屬性由get和set方法進化而來

屬性的聲明

◆屬性完整的聲明 - 后臺成員變量與訪問器
◆屬性簡略聲明 - 只有訪問器
◆動態(tài)計算值的屬性
◆注意實例屬性和靜態(tài)屬性
◆屬性的名字一定是名詞
◆只讀屬性即只有g(shù)etter而沒有setter方法
盡管語法上正確骇吭,幾乎沒有人使用只寫屬性橙弱,因為屬性的主要目的是通過向外暴露數(shù)據(jù)而表示對象或類型的狀態(tài)。
VS2017中書寫屬性的燥狰,類中鍵入propfull后連續(xù)按兩下Tab鍵棘脐,即可快速書寫setter和getter方法。

屬性與字段的關(guān)系

一般情況下龙致,屬性和字段都用于表示實體(對象或類型)的狀態(tài)
屬性大多數(shù)情況下是字段的包裝器wrapper

建議永遠使用屬性而非字段來暴露數(shù)據(jù)蛀缝,即字段永遠都是private或protected的。

using System;

namespace Test
{
    class User
    {
        //屬性 
        private int age;
        public int Age {
            get
            {
                return this.age;
            }
            set
            {
                if (value >= 0 && value <= 120)
                {
                    this.age = value;
                }
                else
                {
                    throw new Exception("Age value has error");
                }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                User user1 = new User();
                user1.Age = 20;
                User user2 = new User();
                user2.Age = 200;
                int avgAge = (user1.Age + user2.Age) / 2;
                Console.WriteLine(avgAge);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadKey();
        }
    }
}

索引器

索引器

什么是索引器

索引器(indexer)是一種成員:使對象能夠用與數(shù)組相同的方式即是用下標(biāo)進行索引

索引器的聲明

注意:沒有靜態(tài)索引器

常量

常量

什么是常量

常量constant是表示常量值目代,即可以在編譯時計算的值的類成員内斯。
常量隸屬于類型而非對象,即沒有實例常量像啼。實例常量的角色由只讀實例來擔(dān)當(dāng)俘闯。
注意區(qū)分成員常量與局部常量

常量的聲明

各種只讀的應(yīng)用場景

為了提高程序可讀性和執(zhí)行效率 - 常量
為了防止對象的值被改變 - 只讀字段
向外暴露不允許修改的數(shù)據(jù) - 只讀屬性(靜態(tài)或非靜態(tài)),功能與常量有些重疊忽冻。
當(dāng)希望成為常量的值其類型不能被常量聲明接受時(類或自定義結(jié)構(gòu)體) - 靜態(tài)只讀字段

C#語言入門詳解(017) 字段真朗、屬性、索引器僧诚、常量:https://www.bilibili.com/video/av18906269?t=4734
https://www.cnblogs.com/tangbuchi/p/10105669.html
C#類成員:http://www.reibang.com/p/a88dce067fa3

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遮婶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子湖笨,更是在濱河造成了極大的恐慌旗扑,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慈省,死亡現(xiàn)場離奇詭異臀防,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門袱衷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捎废,“玉大人,你說我怎么就攤上這事致燥〉橇疲” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵嫌蚤,是天一觀的道長辐益。 經(jīng)常有香客問我,道長脱吱,這世上最難降的妖魔是什么智政? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮急凰,結(jié)果婚禮上女仰,老公的妹妹穿的比我還像新娘。我一直安慰自己抡锈,他們只是感情好疾忍,可當(dāng)我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著床三,像睡著了一般一罩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撇簿,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天聂渊,我揣著相機與錄音,去河邊找鬼四瘫。 笑死汉嗽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的找蜜。 我是一名探鬼主播饼暑,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼洗做!你這毒婦竟也來了弓叛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤诚纸,失蹤者是張志新(化名)和其女友劉穎撰筷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畦徘,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡毕籽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年抬闯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片影钉。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡画髓,死狀恐怖掘剪,靈堂內(nèi)的尸體忽然破棺而出平委,到底是詐尸還是另有隱情,我是刑警寧澤夺谁,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布廉赔,位于F島的核電站,受9級特大地震影響匾鸥,放射性物質(zhì)發(fā)生泄漏蜡塌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一勿负、第九天 我趴在偏房一處隱蔽的房頂上張望馏艾。 院中可真熱鬧,春花似錦奴愉、人聲如沸琅摩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽房资。三九已至,卻和暖如春檀头,著一層夾襖步出監(jiān)牢的瞬間轰异,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工暑始, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留搭独,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓廊镜,卻偏偏與公主長得像牙肝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子期升,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔惊奇,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 2,762評論 2 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,105評論 1 32
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時播赁,會觸發(fā)此異常颂郎。 O...
    我想起個好名字閱讀 5,323評論 0 9
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,993評論 6 13
  • “人都是逼出來的”。每個人都是有潛能的容为,生于安樂乓序,死于憂患寺酪,所以,當(dāng)面對壓力的時候替劈,不要焦燥寄雀,也許這只是生活對你的...
    九洋閱讀 91評論 0 0