Показать сообщение отдельно
Старый 14.06.2010, 00:06   #8
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблемы с переводом

Public - видимость членов класса внутри и вне класса для его экземпляров.
Private - видимо тока внутри класса.
Shared - объявление членов для всех экземпляров, т.е. общих.

Например допустим что у нас есть класс, описывающий данные отдельного человека:
Public Class Person
  Public Name As String
  Public Email As String
End Class
Можно создать два экземпляра для двух разных людей и не Shared поля будут предоставлять различные данные для каждого из них:

Dim Person1 As Person = New Person ()
Person1.Name = "Лit}{Ъ"
Person1.Email = "Лit}{Ъ@blabla.ru"

Dim Person2 As Person = New Person ()
Person2.Name = "PAX"
Person2.Email = "[email protected]"
Допустим теперь, что класс Person имеет общедоступный метод, к которому можно обращаться без создания экземпляров этого класса. Например представим, что у нас есть база данных с уже сохраненными этими двумя людьми, описанными выше. И есть метод, который из базы данных может по электронному адресу человека создать экземпляр записи базы данных со всеми заполненными полями. Выглядело бы это следующим образом:

Public Class Person
  Public Name As String
  Public Email As String
  Public Shared Function GetPersonFromDB(email As String) As Person
     Dim Person1 As Person = New Person ()
     ' далее поиск по базе данных
     '...
     ' назначение полей
     Person1.Name = dataRow["Name"].ToString()
     Person1.Email = dataRow["Email"].ToString()
     Return Person1 
  End Function
End Class

А использование уже где-то из вне можно было бы выполнить следующим образом:
Dim Person1 As Person = Person.GetPersonFromDB("Лit}{Ъ@blabla.ru")
Dim Person2 As Person = Person.GetPersonFromDB("[email protected]")
Т.е. работать уже с функцией самого класса, а не с его экземпляром.

Надеюсь объяснить смог )))
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Лit}{Ъ (14.06.2010)