C# 是否有方法向矩形结构添加其他值?
我想向矩形中添加其他值。比如“Name”字符串 大概是这样的:C# 是否有方法向矩形结构添加其他值?,c#,rectangles,C#,Rectangles,我想向矩形中添加其他值。比如“Name”字符串 大概是这样的: Rectangle MyRectangle = new Rectangle(Y, X, Width, Height, Name) 这可能吗?类中有两个重载构造函数 但是在Rectangle类中没有构造函数参数新矩形([int]、[int]、[int]、[int]、[string]) 您可以尝试在类中使用compositepublic Rectangle{get;set;}属性 然后使用构造函数设置矩形对象和名称 public cl
Rectangle MyRectangle = new Rectangle(Y, X, Width, Height, Name)
这可能吗?类中有两个重载构造函数 但是在
Rectangle
类中没有构造函数参数新矩形([int]、[int]、[int]、[int]、[string])
您可以尝试在类中使用compositepublic Rectangle{get;set;}
属性
然后使用构造函数设置矩形
对象和名称
public class CustomerRectangle
{
public Rectangle Rect { get; set; }
public string Name { get; set; }
public CustomerRectangle(int llx, int lly, int urx, int ury,string name)
{
Rect = new Rectangle(llx, lly, urx, ury);
Name = name;
}
}
然后你可以用
CustomerRectangle MyRectangle = new CustomerRectangle (Y, X, Width, Height, Name);
//MyRectangle.Name; use Name property
//MyRectangle.Rect; use Rectangle
我假设您使用的是系统中的构造函数。绘图命名空间: 无法向该结构添加额外字段。您可以做的是创建自己的类或结构,其中包含更多内容
public class NamedRectangle
{
public string Name { get; set; }
public double X { get; set; }
public double Y { get; set; }
public double Width { get; set; }
public double Height { get; set; }
public NamedRectangle(double x, double y, double width, double height, string name)
{
Name = name;
X = x;
Y = y;
Width = width;
Height = height;
}
}
我看到其他人提供了很好的示例,但如果出现
无法从密封类型继承的错误,下面的示例可能会对您有所帮助:
public class myRectangle
{
private Rectangle newRectangle = new Rectangle();
private string name;
public myRectangle Rectangle(Int32 Y, Int32 X, Int32 Height, Int32 Width, string name )
{
newRectangle.Y = Y;
newRectangle.X = X;
newRectangle.Height = Height;
newRectangle.Width = Width;
this.name = name;
return this;
}
}
只需使用继承,创建一个类MyRectangle:Rectangle并添加属性,如果您有问题,请尝试,然后像您建议的那样尝试修改现有结构,或者尝试使用您自己的结构扩展矩形
结构?编译器告诉你什么?可能的重复我认为你不能从结构继承。请参阅:System.Drawing.Rectangle
是一个结构,而不是一个类。您可以使用组合并使用所需的其他成员定义新的结构(或类,视需要而定),但它不能与System.Drawing.Rectangle
多态。很遗憾,您是对的,我丢失了它。我编辑我的答案谢谢。谢谢这帮了大忙!你可以把它做成一个结构——它不需要是一个类。或者,正如其他人所提到的,您可以简单地创建一个由矩形和字符串组成的结构或类,并模拟现有的矩形签名和行为(但是,它不会是矩形),这非常有帮助!
public class myRectangle
{
private Rectangle newRectangle = new Rectangle();
private string name;
public myRectangle Rectangle(Int32 Y, Int32 X, Int32 Height, Int32 Width, string name )
{
newRectangle.Y = Y;
newRectangle.X = X;
newRectangle.Height = Height;
newRectangle.Width = Width;
this.name = name;
return this;
}
}