2013-04-02 128 views
0

我有下面的代碼,但它不給我任何輸出。我完全失去了接下來的工作。 需要以下輸出C#類Quadrilateral的繼承層次結構?

四邊形的座標是: (1.1,1.2),(6.6,2.8),(6.2,9.9),(2.2,7.4)

using System; 

    class testquadrilaterals 
    { 
static void Main() 
{ 
    quadrilateral obj1 = new quadrilateral(1.1, 1.2, 6.6, 2.8, 6.2, 9.9, 2.2, 7.4); 
    Console.ReadLine(); 
} 
    } 

    class point 
    { 
private double x; 
private double y; 

public point(double x_coord, double y_coord) 
{ 
    x = x_coord; 
    y = y_coord; 
} 

public double X { get { return x; } set { x = value; } } 
public double Y { get { return y; } set { y = value; } } 

public void printcoord() 
{ 
    Console.WriteLine("(" + X + ", " + Y + ")"); 
} 
    } 

    class quadrilateral 
    { 
point p1, p2, p3, p4; 

public quadrilateral(double x1, double y1, double x2, double y2, 
    double x3, double y3, double x4, double y4) 
{ 
    p1 = new point(x1, y1); 
    p2 = new point(x2, y2); 
    p3 = new point(x3, y3); 
    p4 = new point(x4, y4); 
} 

public point P1 { get { return p1; } set { p1 = value; } } 
public point P2 { get { return p2; } set { p2 = value; } } 
public point P3 { get { return p3; } set { p3 = value; } } 
public point P4 { get { return p4; } set { p4 = value; } } 

public string printcoordinates() 
{ 
    return "Coordinates of Quadrilateral are " + p1.ToString() + " " + p2.ToString() + " " + p3.ToString() + " "; 
} 

}

回答

2

你需要調用您的打印方法:

class testquadrilaterals 
{ 
    static void Main() 
    { 
     quadrilateral obj1 = new quadrilateral(1.1, 1.2, 6.6, 2.8, 6.2, 9.9, 2.2, 7.4); 
     Console.WriteLine(obj1.printcoordinates()); // Call your print method 
     Console.ReadLine(); 
    } 
} 
+0

不工作我想, – user1905501

+0

那是因爲你的printcoordinates返回一個字符串,而不是輸出,所以你應該做console.writeline(printcoordinates()); – BlackICE

+0

我明白了,我不得不重寫toString() – user1905501

0

似乎你point不要有ToString重寫 - 我想 - 你有一個打印但未連接。

看來你要的是定義的ToString它調用打印 - 如果我的「M得到它的權利,代碼

我會做這種方式來代替 - 對point

public override string ToString() 
{ 
    return "(" + X + ", " + Y + ")"; 
} 

...併爲誇德里級...

public override string ToString() 
{ 
    return "Coordinates of Quadrilateral are " + p1.ToString() + " " + p2.ToString() + " " + p3.ToString() + " "; 
} 

這樣稱呼它:

Console.Write(obj1.ToString()); 
+0

Thankx我覺得它現在起作用了 – user1905501

1

解決您的printcoordinates並稱之爲:

public void printcoordinates() 
{ 
    console.writeline("Coordinates of Quadrilateral are " + p1.ToString() + " " + p2.ToString() + " " + p3.ToString() + " "); 

} 


class testquadrilaterals 
{ 
    static void Main() 
    { 
     quadrilateral obj1 = new quadrilateral(1.1, 1.2, 6.6, 2.8, 6.2, 9.9, 2.2, 7.4); 
     obj1.printcoordinates(); // Call your print method 
     Console.ReadLine(); 
    } 
}