有没有办法向矩形结构添加其他值?

时间:2018-08-28 21:28:57

标签: c# rectangles

我想向矩形添加其他值。例如“名称”字符串。

类似这样的东西:

Rectangle MyRectangle = new Rectangle(Y, X, Width, Height, Name)

这可能吗?

3 个答案:

答案 0 :(得分:1)

Rectangle类中有两个重载构造函数。

public Rectangle(Point location, Size size);
public Rectangle(int x, int y, int width, int height);

但是new Rectangle([int], [int], [int], [int], [string])类中没有构造函数函数参数Rectangle

您可以尝试在类中使用复合public Rectangle rect { get; set; }属性。

然后使用构造函数设置Rectangle对象和Name

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

答案 1 :(得分:1)

我假设您正在使用System.Drawing命名空间中的构造函数: https://docs.microsoft.com/en-us/dotnet/api/system.drawing.rectangle?view=netframework-4.7.2

不可能在该结构中添加额外的字段。您可以做的是创建自己的包含更多内容的类或结构。

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;
    }
}

答案 2 :(得分:0)

我已经看到其他人提供了很好的示例,但是如果出现Cannot inherit from sealed type错误,以下示例可能会为您提供帮助:

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;
    }
}