Пыха всегда с тобой

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 11 Февраль, 2012, 07:49:12

Страниц: [1] 2
Печать
Автор Тема: Особенности C#. Поля и свойства класса  (Прочитано 4239 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Chiffa    ↓ 
16 Август, 2009, 02:29:00
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 21
Сообщений: 459
Сила слова: 4.58

Попробую внести свою лепту в развитие раздела по шарпу. Начну с рассказа о некоторых особенностях и возможностях языка, которые выгодно (?) отличают его от других. Об этом конечно можно прочитать в учебниках, но опыт показывает что лучше бы знать о их существовании заранее.
За одно уважу товарищей, желавших подискутировать на тему возможностей и плюшек языка.
Итак, свойства (properties) класса.
Обычно для доступа к приватным полям используются методы - геттеры и сеттеры. В синтаксисе С# есть удобная обертка, позволяющая работать с установкой и получением значений для приватных переменных, как если бы они были открытыми. При этом принцип сокрытия данных не рушиться, вся необходимая валидация имеет место быть.
Выглядит это так:
C#

public class UserScoreData
{
     //приватные поля
 
      int _uid ;     
      int _score;
      string _username;
          
    // соответствующие им паблик-свойства
              
      public int Uid {
          get {
            return _uid;
          }
          set{
           //все необходимые проверки...
            _uid = value;
               
          }
      }
      public int GameScore { get { return _score; } set{ _score = value;} }
      public string UserName { get { return _username; } set {_username = value;} }
             
}
 
 
Теперь работа с полями класса будет происходить как с обычными переменными.
C#

UserScoreData currentUser = new UserScoreData ();
currentUser.UserName = "Вася";
int currentScore = currentUser.GameScore;
 
 
Фичу эту очень хвалят за удобство и несмешивание логики поведения (методы-аксессоры) и состояния (поля) объекта. Лично мне идея нравится. Если кто не знал, берите на заметку.
А насколько она крута и достойна подражания, можно спорить, а можно и не спорить))
Кстати, есть ли нечто подобное в других языках программирования? Насколько я знаю нету. Но мало ли:)
« Последнее редактирование: 16 Август, 2009, 02:29:00 от Frozzeg » Записан

Иногда решительный шаг вперед - следствие ощутимого пинка под зад...
ALL code is ugly. Yours, mine, everyone's. Code Is Ugly. Just face it.
Timur    ↓ 
13 Июль, 2009, 03:18:49 , спустя
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

Кстати, есть ли нечто подобное в других языках программирования? Насколько я знаю нету. Но мало ли:)

В дельфях есть
Спустя 1 минуту 28 секунд добавил
а ещё в Ruby и ActionScript
Записан
krasun    ↓ 
22 Июль, 2009, 10:01:01 , спустя 9 дней 6 часов 42 минуты 12 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1378
Сила слова: 2.98

в С++ через прокси-классы можно сделать  
Спустя 20 секунд добавил
в php __set, __get
Спустя 50 секунд добавил
в Java должно быть
Записан
phpdude    ↓ 
22 Июль, 2009, 10:04:53 , спустя 3 минуты 52 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: д-о-х-у-я!
Сила слова: 1.72

krasun, почитай получше про гет и сет))
 
они вызываются ТОЛЬКО КОГДА ПОЛЯ НЕ ПРИСУТСТВУЮТ О ОБЪЕКТА. в любом ином случае ОНИ НЕ ВЫЗЫВАЮТСЯ
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
krasun    ↓ 
22 Июль, 2009, 10:08:03 , спустя 3 минуты 10 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1378
Сила слова: 2.98

phpdude, ты про php?  
Спустя 37 секунд добавил
точно, я забыл уже совсем, кошмар, вот что значит долго чем-то не пользоваться
Записан
phpdude    ↓ 
22 Июль, 2009, 10:24:23 , спустя 16 минут 20 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: 19713
Сила слова: 1.72

krasun, это я про пыхапы
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Timur    ↓ 
23 Июль, 2009, 01:22:04 , спустя 2 часа 57 минут 41 секунду
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

в Java должно быть
нет
Записан
krasun    ↓ 
23 Июль, 2009, 01:23:37 , спустя 1 минуту 33 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1378
Сила слова: 2.98

Timur, оно что там вообще ни как не реализовано?
Записан
CTAPbIu_MABP    ↓ 
23 Июль, 2009, 01:27:46 , спустя 4 минуты 9 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5184
Сила слова: 1.81


Timur, оно что там вообще ни как не реализовано?
там есть приватные свойства и публисные методы.
 
Javascript
public class MyClass{
private String myString;
public String getMyString(){
return myString;
}
public setMyString(String myString){
this.myString = myString;
}
}
Спустя 26 секунд добавил
такой класс называется BEAN
Записан

java.lang.OutOfMemoryError
krasun    ↓ 
23 Июль, 2009, 01:32:17 , спустя 4 минуты 31 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1378
Сила слова: 2.98

а ну это знаю
Спустя 25 секунд добавил
только тогда, наверное, приватные поля
Записан
CTAPbIu_MABP    ↓ 
23 Июль, 2009, 01:37:03 , спустя 4 минуты 46 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5184
Сила слова: 1.81


а ну это знаю
Спустя 25 секунд добавил
только тогда, наверное, приватные поля
почему поля? есть свойства и есть методы в яве больше ничего нет
это в пхп всякие константы
Записан

java.lang.OutOfMemoryError
phpdude    ↓ 
23 Июль, 2009, 01:37:43 , спустя 40 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: 19713
Сила слова: 1.72

krasun, думаю правильнее поля. хотя это все зависит от того как ты переведеш слово field
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
krasun    ↓ 
23 Июль, 2009, 01:44:46 , спустя 7 минут 3 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1378
Сила слова: 2.98

я книгу Шилдта по C#, когда-то читал, там просто говорилось поля про приватные свойства вот и вспомнил, а так по барабану
Записан
CTAPbIu_MABP    ↓ 
23 Июль, 2009, 01:57:04 , спустя 12 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5184
Сила слова: 1.81

phpdude, слово property ни о чем не говорит?
Записан

java.lang.OutOfMemoryError
krasun    ↓ 
23 Июль, 2009, 02:06:29 , спустя 9 минут 25 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи
Группа: Джедаи

Карма: 41
Сообщений: 1378
Сила слова: 2.98

http://java.sun.com/docs/books/tutorial/java/javaOO/initial.html
Записан
Страниц: [1] 2
Печать
 

Перейти в: