В других ответах уже есть ваш ответ, поэтому я не буду бить здесь мертвую лошадь. Вам необходимо объявить поле public
, чтобы получить доступ к нему из внешнего кода.
В C ++ структуры и классы эквивалентны, единственное отличие состоит в уровне доступа по умолчанию их соответствующих членов.
Однако в C # дело обстоит иначе. Как правило, вы должны использовать структуру только для небольших, недолговечных объектов, которые являются неизменяемыми (не изменится). Структура имеет тип значения семантика, где как класс имеет ссылочный тип семантика. Очень важно понимать разницу между типами значений и ссылочными типами, если вы учитесь программировать на C #. Джон Скит опубликовал статью , которая пытается дать такое объяснение. Но вам наверняка захочется подобрать хорошую вводную книгу по C #, в которой эти вопросы рассматриваются более подробно.
Чаще всего вы захотите использовать класс в C #, а не структуру. И когда вы используете этот класс, обратите внимание, что руководящие принципы Microsoft по разработке для C # обычно рекомендуют против раскрытия открытых полей. Вместо этого они рекомендуют вам использовать публичное свойство, подкрепленное приватным полем. Более подробное изложение обоснования этого руководства дано здесь . Например:
class TimePeriod
{
private double seconds;
public double Seconds
{
get { return seconds; }
set { seconds = value; }
}
}
Или вы можете использовать более простой синтаксис "автоматических свойств", при котором компилятор автоматически создает это частное поле поддержки:
class TimePeriod
{
public double Seconds { get; set; }
}