和c#中的property不同,vb中的property通過三個過程來實現:property get,property let,property set
分別為讀值,賦值,和物件型別賦值。實現的原理和property的作用和c#中並無二致,只是c#的形式更為統一,簡潔。
[public | private | friend] [static] property get p_name [(arglist)] [as type]
[statements]
[p_name = expression]
[exit property]
[statements]
[p_name = expression]
end property
property get 過程和普通的sub過程比較相似。get屬性p_name 將會在過程內得到賦值。p_name = (value)的形式。相當於c#中的屬性
get部分: return value ;由於p_name被賦值使用,所以應該有返回值。
[public | private | friend] [static] property let p_name ([arglist,] value)
[statements]
[exit property]
[statements]
end property
property let 過程的作用是給property對應的變數(設為p)賦值。相當於c#中set部分:p=value;這是乙個無返回值的過程。
[public | private | friend] [static] property set name ([arglist,] reference)
[statements]
[exit property]
[statements]
end property
properyt set 過程和property let一樣,只使let是對普通變數,set是對物件而言。vb並不是徹底的物件導向。在資料型別方面是傳統的
基本的型別和物件兩種。
python中的property屬性
property裝飾器就是負責把乙個方法變成屬性呼叫的。property定義get方法,score.setter定義score屬性的set方法 class student object def init self,score 0 self.score score property defscore ...
python中的property屬性
建立property屬性的方法有兩種,分別是裝飾器方式 和 類屬性方式。1 裝飾器方式如下 class goods def init self self.original price 100 self.discount 0.8 property def price self 此函式中只有self,不...
OC中 property的所有屬性
1,assign 簡單賦值,不更改索引計數 假設你用malloc分配了一塊記憶體,並且把它的位址賦值給了指標a,後來你希望指標b也共享這塊記憶體,於是你又把a賦值給 assign 了b。此時a 和b指向同一塊記憶體,請問當a不再需要這塊記憶體,能否直接釋放它?答案是否定的,因為a並不知道b是否還在使...