Please review this code and proffer a solution where possible.

Problem: - Error as stated by my compiler is as follows "Cube.ToString(string)': no suitable method found to override"

Please tell me why these override isn't working and how best to make a string representation of my Cube objects.

Code:class Cube { //Declaring instance variables private double areaResult;// areaResult instance variable to hold a Cube object's area private double perimeterResult;// perimeterResult instance variable to hold a Cube object's perimeter //cube name private string cubeName; // instance variable "dimensions" array of type double to hold a Cube object's dimensions private double[] dimensions; // instance variable "sideNames" array of type double to hold a Cube object's dimensions private string[] sideNames = { "length", "height", "breath" }; //Declaring properties //Area property... This property exposes a Cube object's areaResult instance variable //This property is readonly public double Area { get { return areaResult; } } //Declaring properties //Perimeter property... This property exposes a Cube object's perimeterResult instance variable //This property is readonly public double Perimeter { get { return perimeterResult; } }// end of property Perimeter //Declaring indexers //These indexers provides access to a Cube object's array instances variables in a fashion way //Access a Cube object's array instance variable via an integer index public double this[int dimensionIndex] { //To read an indexed value in a Cube object array get { //locate the value in the array if ((dimensionIndex < 0) || (dimensionIndex >= dimensions.Length)) { return -1;//if index is invalid return -1 } else { return dimensions[dimensionIndex];//else return the indexed value } } //To set an indexed value in a Cube object array set { //locate the value in the array if ((dimensionIndex >= 0) && (dimensionIndex > dimensions.Length)) { dimensions[dimensionIndex] = value; //set it only if it meet the requirment } } } //Access a Cube object's array instance variable via a string index public double this[string sideNameIndex] { //To read an indexed value in a Cube object array get { //locate the value in the array int i = 0; while ((i < dimensions.Length) && (sideNames[i] != sideNameIndex.ToLower())) { ++i; } return (i == sideNames.Length) ? -1 : dimensions[i]; } //To set an indexed value in a Cube object array set { //locate the value in the array int i = 0; while ((i < dimensions.Length) && (sideNames[i] != sideNameIndex.ToLower())) { ++i; } if (i != sideNames.Length) { dimensions[i] = value; //set it only if it meet the requirment } } } //Declaring methods //SqrArea method computes the area of a Cube object private void SqrArea() { double area = 1.00;// assume area is one for (int i = 0; i < dimensions.Length; i++) { area *= dimensions[i];//multiply through all the dimensions... } areaResult = area; // initialise areaResult } //SqrPerimeter method computes the perimeter of a Cube object private void SqrPerimeter() { double perimeter = 0.00;// assume area is zero for (int i = 0; i < dimensions.Length; i++) { perimeter += dimensions[i];//add through all the dimensions... } perimeterResult = perimeter; // initialise perimeterResult } //Declaring constructors... There are two constructors for a Cube object public Cube(double[] sqrDimensions) { dimensions = sqrDimensions;// initialise instance variable dimensions //Compute the objects area SqrArea(); // call SqrArea method SqrPerimeter(); // call SqrPerimeter method } public Cube(double[] srqDimensions, string[] sideNames) { dimensions = srqDimensions; // initialise instance variable dimensions //this is used here coz this class instance variable sideNames is hidden //as a result of using the same name as parameter this.sideNames = sideNames;// initialise sideNames instance variable //Compute the objects area SqrArea(); // call SqrArea method SqrPerimeter(); // call SqrPerimeter method } //String Representation of a cube object public override string ToString(string name = "") { cubeName = name; return string.Format("{0}", cubeName); } }// end of class Cube