第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在構(gòu)造函數(shù)或聲明中初始化類字段?

在構(gòu)造函數(shù)或聲明中初始化類字段?

慕的地6264312 2019-06-17 15:18:46
在構(gòu)造函數(shù)或聲明中初始化類字段?我最近一直在用C#和Java編程,我很好奇哪里是初始化類字段的最佳位置。我應(yīng)該在申報(bào)時(shí)做這件事嗎?public class Dice{     private int topFace = 1;     private Random myRand = new Random();     public void Roll()     {        // ......     }}還是在構(gòu)造函數(shù)中?:public class Dice{     private int topFace;     private Random myRand;     public Dice()     {         topFace = 1;         myRand = new Random();     }     public void Roll()     {         // .....     }}我真的很好奇你們中的一些老兵認(rèn)為什么是最好的做法。我想保持一致,堅(jiān)持一種方法。
查看完整描述

3 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

在C#中,這并不重要。您給出的兩個(gè)代碼示例完全等價(jià)。在第一個(gè)示例中,C#編譯器(還是CLR?)將構(gòu)造一個(gè)空構(gòu)造函數(shù)并初始化變量,就像它們?cè)跇?gòu)造函數(shù)中一樣(JonSkeet在下面的注釋中解釋了其中的細(xì)微差別)。如果已經(jīng)有一個(gè)構(gòu)造函數(shù),那么“上面”的任何初始化都將移到它的頂部。

就最佳實(shí)踐而言,前者比后者更容易出錯(cuò),因?yàn)橛腥丝梢暂p松地添加另一個(gè)構(gòu)造函數(shù),而忘記將其鏈接起來(lái)。


查看完整回答
反對(duì) 回復(fù) 2019-06-17
?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

這里,C#的語(yǔ)義與Java略有不同。在C#中,聲明中的賦值在調(diào)用超類構(gòu)造函數(shù)之前執(zhí)行。在Java中,這是緊接著進(jìn)行的,允許使用“this”(對(duì)于匿名內(nèi)部類特別有用),這意味著這兩種表單的語(yǔ)義確實(shí)匹配。

如果可以的話,把字段變成最后的。


查看完整回答
反對(duì) 回復(fù) 2019-06-17
?
守著星空守著你

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊

我的規(guī)則:

  1. 不要用聲明中的默認(rèn)值初始化(

    nullfalse00.0…).

  2. 如果沒(méi)有更改字段值的構(gòu)造函數(shù)參數(shù),則更喜歡聲明中的初始化。
  3. 如果字段的值由于構(gòu)造函數(shù)參數(shù)而發(fā)生變化,則將初始化放在構(gòu)造函數(shù)中。
  4. 在實(shí)踐中保持一致(最重要的規(guī)則)。


查看完整回答
反對(duì) 回復(fù) 2019-06-17
  • 3 回答
  • 0 關(guān)注
  • 667 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)