我有一个Rectangle类型的方法,它需要返回:
真:
否则:
这是方法:public Rectangle ReturnStuff(Rectangle rect) {...stuff...};
我已经尝试过很多东西 - 例如(Rectangle)rect.ToString(); ConvertToString / INT()... 但似乎没什么用。
任何提示?
由于
答案 0 :(得分:2)
public Rectangle (Rectangle rect) {};
那个'方法'是一个构造函数。
覆盖对象ToString()
并按您希望的方式实现它。从另一个班级打电话。
public override string ToString()
{
return "Rectangle";
}
可能想要返回宽度等等。
编辑:
当你将你的questionf从Copy Constructor更改为返回类型Rectangle的方法时,我应该澄清一下。
如果你想传入矩形,请执行以下操作:(不知道为什么你在方法的末尾有一个分号...)
public void ManipulateRectangle(Rectangle rect)
{
rect.GetWidth(); //I don't know your rectangle class methods or data members.
rect.GetHeight(); //etc.
}
现在,如果那不是你想要的,而是你想得到一个矩形(通过传入一个矩形?我不知道为什么 - 除非你以某种方式操纵它)你必须实际返回一个类型的对象矩形。
public Rectangle ManipulateRectangle(Rectangle rect)
{
var newRectangle = new Rectangle();
newRectangle.SetWidth(rect.GetHeight()); //ex manipulation
return newRectangle;
}
只是为了参考,试着让你的问题更具体一点:)它有所帮助。还应包括方法的名称,属于它们的代码以及您想要做什么。
答案 1 :(得分: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;
}
答案 2 :(得分:1)
您无法从一种方法返回三个值(名称,高度和宽度)。
调用代码需要在返回的Rectangle
上使用属性(如果它们可用),或者该方法可以返回包含详细信息的Tuple<string,int,int>
。该方法还可以使用out
参数将值返回给调用代码。
到目前为止,在设计和可读性方面最好的选择是第一个 - 在返回的'Rectangle'上使用属性。
因此调用代码可能类似于:
Rectangle rect1 = ???
Rectangle newRect = ReturnStuff(rect);
string name = newRect.ToString();
int width = newRect.Width;
int height = newRect.Height;