猿问

什么时候应该使用结构而不是类?

什么时候应该使用结构而不是类?

MSDN说,当您需要轻量级对象时,应该使用structs。当一个结构比一个类更可取的时候,还有其他的场景吗?

有些人可能忘记了:

  1. 结构

    可以有方法。
  2. 结构

    不能继承。

我理解结构和类之间的技术差异,只是感觉不太好。什么时候使用结构。


慕森王
浏览 481回答 3
3回答

忽然笑

我感到惊讶的是,我没有读到以前的任何一个答案,我认为这是最关键的方面:当我想要一个没有标识的类型时,我使用structs。例如,3D点: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);     }}如果这个结构有两个实例,那么您不关心它们是否是内存中的一个或两个数据。你只关心他们的价值。
随时随地看视频慕课网APP
我要回答