2010-10-14 43 views
1

這是正確的嗎?如何實例化新的結構對象?

//Structure 
public struct Shape 
{ 
    public string mShape; 
    public int mSide; 

    public Shape(/*initial sides parameter*/ int sSide, string sShape) 
    { 
     mShape = sShape; 
     mSide = sSide; 
    } 

} 

//more code here.... but no need to post. 
//Instantiate new Shape structure object 
myShape = new Shape(/*Sides integer value*/ ,sShape); 

//How to Add the additional parameter to construct the object? 
+0

從醜陋的編碼習慣和公共領域的公寓這看起來對我來說很好。你是什​​麼意思的額外參數? – CodesInChaos 2010-10-14 19:48:16

+0

您的結構應該是不可變的(將所有字段標記爲只讀和/或將字段封裝在沒有setter的屬性中)。 – dtb 2010-10-14 19:57:52

+0

「結構對象」是c#中的一個矛盾, – 2010-10-14 20:39:04

回答

2

不確定關注。如果你的問題是,你如何在構造函數中發送一個整數?

在這裏你去:

myShape = new Shape(4, sShape); 

或:

int sides = 4; 
myShape = new Shape(sides, sShape); 
+0

thx Rein,我錯過了明顯的。 thx再次。 – Yves 2010-10-14 20:06:07

2

同意與中投公司爲何領域的公衆?非常危險的封裝違規http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29 - 也見信息隱藏參考... 此外,形狀是相當模糊的,對吧?一個正方形有一個值,一個矩形2和一個圓周......多邊形可以有很多。我細化子類需要通過擴展超類來實現邊。而在那種情況下,爲什麼要傳遞形狀的名字?這是什麼意思?

+0

我明白你的意思,但我沒有發佈我的所有代碼,並感謝鏈接,我絕對可以使用它。 – Yves 2010-10-14 20:04:55