如何从Shapes转换为string,int等...?

时间:2012-10-05 00:27:38

标签: c# .net wpf

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

真:

  • 传递给方法的矩形名称

否则:

  • 该矩形的宽度和高度

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

我已经尝试过很多东西 - 例如(Rectangle)rect.ToString(); ConvertToString / INT()... 但似乎没什么用。

任何提示?

由于

3 个答案:

答案 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;