什么時候應(yīng)該使用結(jié)構(gòu)而不是類?MSDN說,當(dāng)您需要輕量級對象時,應(yīng)該使用structs。當(dāng)一個結(jié)構(gòu)比一個類更可取的時候,還有其他的場景嗎?有些人可能忘記了:結(jié)構(gòu)可以有方法。結(jié)構(gòu)不能繼承。我理解結(jié)構(gòu)和類之間的技術(shù)差異,只是感覺不太好。什么時候使用結(jié)構(gòu)。
3 回答

忽然笑
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個贊
public struct ThreeDimensionalPoint{ public readonly int X, Y, Z; public ThreeDimensionalPoint(int x, int y, int z) { this.X = x; this.Y = y; this.Z = z; } public override string ToString() { return "(X=" + this.X + ", Y=" + this.Y + ", Z=" + this.Z + ")"; } public override int GetHashCode() { return (this.X + 2) ^ (this.Y + 2) ^ (this.Z + 2); } public override bool Equals(object obj) { if (!(obj is ThreeDimensionalPoint)) return false; ThreeDimensionalPoint other = (ThreeDimensionalPoint)obj; return this == other; } public static bool operator ==(ThreeDimensionalPoint p1, ThreeDimensionalPoint p2) { return p1.X == p2.X && p1.Y == p2.Y && p1.Z == p2.Z; } public static bool operator !=(ThreeDimensionalPoint p1, ThreeDimensionalPoint p2) { return !(p1 == p2); }}
- 3 回答
- 0 關(guān)注
- 500 瀏覽
添加回答
舉報
0/150
提交
取消