property和field有什麼區別

2021-09-06 02:07:13 字數 478 閱讀 2100

剛剛,看到乙個帖子的討論提到「property和field有什麼區別」, 然後,就突然想寫段**看一下。

情況是這樣的,對於property和field的使用,**是不同的,對於field使用的il中,stfld設定資料,ldfld載入資料,我們知道property最終是被生成方法的,所以對於property的使用,實際是對方法的呼叫,set_ 設定資料,get_ 載入資料。

對於「沒有邏輯」的property,看上去和field沒有曲別,但是,一旦「沒有邏輯」成為「過去」,(需求會變化,***。)有沒有使用property情況就不同了,使用property的情況下,只需要修改相應的邏輯**,並編譯它,對於使用者來說,這是「property」的「家事」,它不關心,它也不必作任何動作,就照常執行就是了,而使用field情況就遭了,當field被迫改為property時,使用者就必需重新編譯,否則它將無法執行。

(回想起來,好像當初學習property時,就是這麼說的,不怕一萬,就怕萬一。)

C 中的域(Field)和屬性(Property)

c 中的域 field 和屬性 property 一般的命名習慣 field 對應的屬性 或許狹義地進行區分一下,get和 set的實現的稱為屬性,其他的變數稱為資料成員。c 將屬性從其他語言中的一種特殊約定提公升成為一種第一等 first class 的語言特性。屬性在使我們可以將資料成員暴露為公...

property和 property的一些小結

在.h檔案中 inte cemyclass nsobject property nonamtic,retain myobjecct myobject end 在.m檔案中 implementation myclass synthesize myobject myobject void dealloc...

反射機制 2 Method和Field

以下 都需要另外import乙個student類來執行 以下4種方法,全部都在class類中 getmethods 獲得類的public型別的方法 取得所有public的方法,包括繼承的,介面中宣告的和自己定義的 getdeclaredmethods 取得所有當前類宣告的方法,包括public,pr...