Друг недавно было интервью по телефону, и он был задан вопрос технический вопрос:Вычислить площадь поверхности 2D формы
Q) Если бы я хотел, чтобы вычислить площадь поверхности некоторых 2D форм, то, что «ковша» будет Я использую. У него было 20 минут, чтобы написать код, и интервьюер позвонил ему. Он отправил код по электронной почте, и код не обсуждался на оставшуюся часть интервью (других технических вопросов не было). Он прислал мне код: приложение
namespace ShapesApp { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.Load += form_load; } public void form_load (Object o, EventArgs e) { List<Shape> listShape = new List<Shape>(); Shapes.Circle circle = new Shapes.Circle(); Shapes.Rectangle rectangle = new Shapes.Rectangle(); Shapes.Square square = new Shapes.Square(); Shapes.Triangle triangle = new Shapes.Triangle(); listShape.Add(rectangle); listShape.Add(square); listShape.Add(triangle); foreach (Shape shape in listShape) { double a = 10; double b = 10; double surfaceArea = shape.CalculateSurfaceArea(a,b); Console.WriteLine("The surface area of a " + shape.GetType() + " is: " + surfaceArea); } } } }
Windows Forms Shapes - класс Библиотека
namespace Shapes
{
public abstract class Shape
{
abstract public double CalculateSurfaceArea(double Double1, double Double2);
}
public class Circle : Shape
{
public override double CalculateSurfaceArea(double pi, double radius)
{
return (pi * radius) * (pi * radius);
}
}
public class Triangle : Shape
{
public override double CalculateSurfaceArea(double Base, double Height)
{
return (Base*Height)/2;
}
}
public class Rectangle : Shape
{
public override double CalculateSurfaceArea(double Length, double Width)
{
return Length * Width;
}
}
}
интервьюер сказал, что он "боролся" с тестом. Что не так с кодом?
Почему с помощью формы Windows, если результат будет печататься в консоли? – Fabio
pi - постоянная, поэтому почему она передается как параметр и неверно квадрат? – jdweng
Так что я могу назначить 'pi = -15.789'? '... CalculateSurfaceArea (double pi, double radius) ...'; Я могу иметь квадрат * с 'Length'! =' Width'? –