0

我有一个 Rectangle 类型的方法,它需要返回:

真的:

  • 传递给方法的矩形名称

别的:

  • 该矩形的宽度和高度

这是方法:public Rectangle ReturnStuff(Rectangle rect) {...stuff...};

我已经尝试了很多东西 - 例如 (Rectangle) rect.ToString(); ConvertToString/Int()... 但似乎没有任何效果。

有小费吗?

谢谢

4

3 回答 3

2
public Rectangle (Rectangle rect) {};

那个“方法”是一个构造函数。

覆盖对象ToString()并以您想要的方式实现它。从另一个班级调用它。

public override string ToString()
{
    return "Rectangle";
}

可能想要返回诸如宽度高度等的东西。

编辑:

当您将问题从复制构造函数更改为返回类型为 Rectangle 的方法时,我可能应该澄清一下。

如果您希望传入矩形,请执行以下操作:(不知道为什么方法末尾有分号...)

public void ManipulateRectangle(Rectangle rect) 
{
    rect.GetWidth(); //I don't know your rectangle class methods or data members.
    rect.GetHeight(); //etc.
}

现在,如果这不是您要查找的内容,而是您想要获得一个矩形(通过传入一个矩形?我不确定为什么 - 除非您以某种方式操作它)您必须实际返回一个 Rectangle 类型的对象。

public Rectangle ManipulateRectangle(Rectangle rect) 
{
    var newRectangle = new Rectangle();
    newRectangle.SetWidth(rect.GetHeight()); //ex manipulation

    return newRectangle;
}

只是为了参考,试着让你的问题更具体一点:)它有帮助。还应包括方法名称、属于它们的代码以及您想要做什么。

于 2012-10-05T00:30:29.203 回答
1

这种方法看起来有些奇怪。

public Rectangle (Rectangle rect) {};

Rectangle在我看来,它就像一个应该从另一个创建一个的构造函数Rectangle

如果要返回矩形的名称,则需要类似:

public string RectangleName (Rectangle rect)
{
    return rect.ToString();
}

如果构造函数打算复制传入的矩形,那么你需要类似的东西:

public Rectangle (Rectangle rect)
{
    this.name = rect.name;
    this.width = rect.width;
    this.height = rect.height;
}
于 2012-10-05T00:31:09.633 回答
1

您不能从一种方法返回三个值(名称、高度和宽度)。

调用代码需要使用返回的属性(Rectangle如果它们可用),或者该方法可以返回Tuple<string,int,int>包含详细信息的 a。该方法还可以使用out参数将值返回给调用代码。

到目前为止,在设计和可读性方面的最佳选择是第一个 - 在返回的“矩形”上使用属性。

所以调用代码可能看起来像:

Rectangle rect1 = ???
Rectangle newRect = ReturnStuff(rect);
string name = newRect.ToString();
int width = newRect.Width;
int height = newRect.Height;
于 2012-10-05T00:57:30.957 回答