C# 中的自定义系列结构
本文关键字:系列 结构 自定义 | 更新日期: 2023-09-27 17:56:29
我定义了这样的结构,用于存储 Line 的 X1、Y1、X2、Y2 值,我想知道 C# 中是否有类似的结构,我在这里重新发明轮子吗?
public struct _2DLine
{
public double X1 { get; set; }
public double Y1 { get; set; }
public double X2 { get; set; }
public double Y2 { get; set; }
}
更新:我不想画一条线,我只想存储端点。
您可以使用System.Drawing.Point
作为生产线的组件。
public struct _2DLine
{
public Point Point1 { get; set; }
public Point Point2 { get; set; }
}
您可以使用此命名空间 System.Windows.Shapes.Line 绘制线条。
该类型非常简单,除非您要将实例传递给接受某些特定结构类型的东西(在这种情况下,您应该使用它),否则最好定义自己的类型,而不是引入对某些模糊类型的依赖。 请注意,在结构中,公共字段优于公共可变属性。 如果成分本身是结构,这是双重正确的,就像你使用两个System.Drawing.Point
一样(正如Menelaos Vergis所建议的那样,如果你将坐标传递给接受该类型的方法,这是一个非常合理的主张)。
使用公共字段而不是属性将可以像myLine.Start.X += 23;
一样执行计算,而不必说myLine.Start = new Point(myLine.Start.X+23, myLine.Start.Y);
。 尽管一些认为一切都应该表现为类对象的人更喜欢后一种语法,但我认为使用前者的能力是使用字段的一个有价值的优势。 请注意,对于类对象,属性比字段具有一些真正的优势,但这些优势几乎都不适用于结构,并且它们通常不会超过通过使用字段实现的更方便的更新。