我正在從“Head First C#”一書中學習 C#。我以為我理解屬性。它們像欄位一樣使用,但像方法一樣作業,帶有 getter 和 setter。我從不認為它們是附加到實體化物件的另一個物件。是這樣嗎?
請參閱書中給出的代碼和讓我想到這一點的 Outfit 物件。
非常感謝你的幫助!!
后續問題:
- 是不是當一個物件被實體化時,除了值型別之外,它的所有屬性也會被實體化為堆上的物件?
- 在這種情況下,為什么沒有
HairStyle
物件連接到Guy
物件?
uj5u.com熱心網友回復:
是的,你說“類似屬性的方法”是正確的,但是這種方法需要使用某種型別,它也可以是基本型別或物件。
uj5u.com熱心網友回復:
我認為我們最好先注意類和物件之間的區別。
許多人對類和物件之間的區別感到困惑。區別是簡單的和概念性的。類是物件的模板。類定義物件屬性,包括有效值范圍和默認值。一個類還描述了物件的行為。物件是類的成員或“實體”。一個物件有一種狀態,在這種狀態下,它的所有屬性都具有您明確定義或由默認設定定義的值。
現在,讓我們檢查一下屬性:
屬性是表征類的屬性或特征。雖然類是物件組,但實體是實際屬于某個類的特定物件。
uj5u.com熱心網友回復:
我不確定你在問什么,但也許這會有所幫助。您正在查看的屬性就像您所說的某種型別的 getter 和 setter(字串、int、Outfit 等)。
下面的“完整”屬性是引擎蓋下發生的事情(據我所知)
public class Props
{
//Syntactic Sugar
public string? MyProperty { get; set; }
//What's actually happening
private string? myProperty_full;//This is the field that holds the value
public string? MyProperty_Full
{
get => myProperty_full;
//value is whatever the user sets MyProperty_Full to
set => myProperty_full = value;
}
}
在衣服屬性的情況下。有一個 Outfit 型別的私有支持欄位,其中包含一些用于操作它的 getter 和 setter。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/455826.html
上一篇:嵌套物件以回應未記錄到控制臺