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

Appart от уродливых условных обозначений и публичных полей, это выглядит хорошо для меня. И что вы подразумеваете под дополнительным параметром? – CodesInChaos

+0

Ваша структура должна быть неизменной (отметьте все поля как readonly и/или инкапсулируйте поля в свойствах без setter). – dtb

+0

«Объект структуры» - это оксюморон в C# –

ответ

2

Не уверен, что я следую. Если ваш вопрос: как вы отправляете целое число в конструкторе?

Здесь вы идете:

myShape = new Shape(4, sShape); 

или:

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

thx Rein, я пропустил очевидное. thx снова. – Yves

2

Согласовано с CIC почему поля общественности? Очень опасное нарушение инкапсуляции http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29 - также см. Ссылки на информацию, скрывающуюся ... Также, форма довольно расплывчата, не так ли? Квадрат имеет одно значение, прямоугольник 2 и круг окружность ... и многоугольник может иметь много. Я утончаю подклассы, чтобы реализовать стороны, расширив суперкласс. И, в таком случае, зачем передавать название формы? Какой в ​​этом смысл?

+0

Я понимаю, что вы имеете в виду, но я не опубликовал весь свой код и спасибо за ссылку, я определенно могу это использовать. – Yves

Смежные вопросы