Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有方法向矩形结构添加其他值?_C#_Rectangles - Fatal编程技术网

C# 是否有方法向矩形结构添加其他值?

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

我想向矩形中添加其他值。比如“Name”字符串

大概是这样的:

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

这可能吗?

类中有两个重载构造函数

但是在
Rectangle
类中没有构造函数参数
新矩形([int]、[int]、[int]、[int]、[string])

您可以尝试在类中使用composite
public 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;
    }
}