我有一个 Rectangle 类型的方法,它需要返回:
真的:
- 传递给方法的矩形名称
别的:
- 该矩形的宽度和高度
这是方法:public Rectangle ReturnStuff(Rectangle rect) {...stuff...};
我已经尝试了很多东西 - 例如 (Rectangle) rect.ToString(); ConvertToString/Int()... 但似乎没有任何效果。
有小费吗?
谢谢
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;
}
只是为了参考,试着让你的问题更具体一点:)它有帮助。还应包括方法名称、属于它们的代码以及您想要做什么。
这种方法看起来有些奇怪。
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;
}
您不能从一种方法返回三个值(名称、高度和宽度)。
调用代码需要使用返回的属性(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;