【发布时间】:2017-06-19 12:54:55
【问题描述】:
我正在编写一个简单的练习程序,它允许用户输入各种形状的角的 x/y 坐标,然后程序会告诉用户关于我创建的所描述形状(面积、周长等)的基本事实一个名为 TRIANGLE 的类,我在其中有一个方法来确定每一边的长度(并将每一边的长度分配给它们自己的变量)和周长。我正在尝试编写另一种方法来比较这些长度变量以确定哪一侧是斜边、高度和底边。这是我到目前为止的代码:
public void GetLength()
{
string choice;
double side1length = Math.Sqrt(((corner1.x - corner2.x) + (corner1.y - corner2.y) * (corner1.x - corner2.x) + (corner1.y - corner2.y)));
double side2length = Math.Sqrt(((corner2.x - corner3.x) + (corner2.y - corner3.y) * (corner2.x - corner3.x) + (corner2.y - corner3.y)));
double side3length = Math.Sqrt(((corner3.x - corner1.x) + (corner3.y - corner1.y) * (corner3.x - corner1.x) + (corner3.y - corner1.y)));
Console.WriteLine("Which side do you want the length of? (first, second, third, perimeter)");
choice = Console.ReadLine();
switch (choice)
{
case "first":
Console.Write($"The first side is {length1} units long");
break;
case "second":
Console.Write($"The second side is {length2} units long");
break;
case "third":
Console.Write($"The third side is {length3} units long");
break;
case "perimeter":
Console.Write($"The perimeter is {length1 + length2 + length3}");
break;
}
}
public void GetArea()
{
double hypotenuse, height, Base;
if (side1length > side2length)
if (side1length > side3length)
hypotenuse = length1;
}
我是否需要在 GetLength() 方法中使用 out 关键字?问题是我尝试访问GetArea() 方法中的变量的方式吗?两者都有吗?我完全打破了继承规则吗?有什么更好的方法来做到这一点?
【问题讨论】:
-
GetArea()从不调用或作用域GetLength(),那么您希望它如何使用其变量值?
标签: c# variables inheritance methods out