2010-10-14 45 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