Закрытые переменные в c#

Язык C#: программирование на C#, портирование кода C# на VB и VB на C#.

Модератор: Ramzes

Vladlex
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 12.02.2008 (Вт) 16:01
Откуда: Владивосток

Закрытые переменные в c#

Сообщение Vladlex » 17.02.2008 (Вс) 9:08

Подскажите правильный синтаксис закрытых переменных. Я имею ввиду их объявление и обращение к ним из других классов.

Я объявляю закрытую переменную в классе Vehicle:
Код: Выделить всё
class Vehicle
   {
      
      public int passengers
      {
         get{return passengers;}
         set{passengers = value;}
         
      }}

Затем из другого класса присваиваю ей значение:
Код: Выделить всё
Vehicle minivan = new Vehicle();
minivan.passengers = 7;


Что и где не так?

Извините за такой тупой вопрос, но в методичке по си шарпу ничего конкретного не сказано, буквально такой код и дан, а электронных книг по си шарпу я не нашел.
Человек - дитя препятствий. Блан де Сент-Бонне.

Thomas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 246
Зарегистрирован: 12.11.2005 (Сб) 0:17
Откуда: "Сказочное королевство"

Сообщение Thomas » 17.02.2008 (Вс) 20:40

Vladlex
Привествую.
Если я правильно понимаю, то "закрытая переменная" это переменная private и из другого класса она не видна.

Хорошим тоном считается использование свойств класса
переменная private, а свойство public
Код: Выделить всё
public class Groep : INotifyPropertyChanged
    {
            private int _groepId;
            public int GroepId
            {
                get { return _groepId; }
                set { _groepId = value; }
            }
}

А вызывается в другом классе так
Код: Выделить всё
Groep _groep = new Groep();
//
Label1.Text = _groep.GroepId.ToString();
Met vriendelijke groetjes
VS2008 Pro FW3.5 SP1

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 01.03.2008 (Сб) 2:49

В C# 3.0 (.NET 3.5/Visual Studio 2008) такой код, где нет никакой дополнительной логики:

class Vehicle
{
private int _passengers;


Код: Выделить всё
      public int passengers
      {
         get{return _passengers;}
         set{_passengers = value;}
         
      }}


Можно заменить на такой:

Код: Выделить всё
class Vehicle
{
    public int passengers {get; set; }
}
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 03.03.2008 (Пн) 11:25

gaidar
и зачем они это сделали?


Вернуться в C#

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28

    TopList