Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2018, 09:10   #1
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Вопрос Что значит new int i?

Из за плохого перевода ни черта не понятно, бред перевод, не соответствует с действием программы, так что пожалуйста, объясните что значит тут:
Код:
new int i;
ключевое слово new.

Полный код программы, код маленький:
Код:
using System;
class А {
    public int i = 0;
}
// Создать производный класс.
class В : А {
    new int i; // этот член скрывает член i из класса А
    public В(int b)
    {
        i = b; // член i в классе В
    }
    public void Show()
    {
        Console.WriteLine("Член i в производном классе: " + i);
    }
}
class NameHiding {
    static void Main()
    {
        В ob = new В(2);
        ob.Show();
        Console.ReadKey();
    }
}
Мaкс вне форума Ответить с цитированием
Старый 27.06.2018, 09:12   #2
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

а в интернете там не понятно просто так.
Мaкс вне форума Ответить с цитированием
Старый 27.06.2018, 09:13   #3
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

так как там непонятные темы из будующих глав.

Последний раз редактировалось Мaкс; 27.06.2018 в 09:13. Причина: ш ---> д
Мaкс вне форума Ответить с цитированием
Старый 27.06.2018, 09:28   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Все нормально с переводом.
Только это чаще с функциями/свойствами классов используют, а не с полями.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.06.2018, 09:31   #5
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Все нормально с переводом.
Я про учебник, иногда ни черта не понятно, а чаще всего учебник подходит для новичков, другие книги не предназначены для первого изучения C#...

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Только это чаще с функциями классов используют, а не с полями.
Ну хорошо, но это из учебника взял это, Alex11223, можете сказать для чего это нужно ключевое слово?

Последний раз редактировалось Мaкс; 27.06.2018 в 09:32. Причина: Убрал лишнюю фразу: "там переводы на троечку,"
Мaкс вне форума Ответить с цитированием
Старый 27.06.2018, 09:36   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://docs.microsoft.com/en-us/dot...s/new-modifier
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.06.2018, 09:49   #7
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Alex11223, насколько я понял, new скрывает i от базового класса, то бишь от класса A?
Мaкс вне форума Ответить с цитированием
Старый 27.06.2018, 10:27   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
насколько я понял, new скрывает i от базового класса, то бишь от класса A?
нет. он скрывает i базового класса в потомке.
т.е. если Вы в потомке напишете i - то увидите новую i, описанную в наследнике, а базовая i будет скрыта.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2018, 10:27   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Что в предложении "явно скрывает поле из базового класса" для вас непонятно? Какое слово? Что заставило переспросить?
p51x вне форума Ответить с цитированием
Старый 27.06.2018, 10:32   #10
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Что в предложении "явно скрывает поле из базового класса" для вас непонятно? Какое слово?
Уже никакое, а раньше было путаница между базовым классом и произвольным, сейчас всё норм.
Цитата:
Сообщение от p51x Посмотреть сообщение
Что заставило переспросить?
Для надёжности, я был раньше в заблуждение.


Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
нет. он скрывает i базового класса в потомке.
т.е. если Вы в потомке напишете i - то увидите новую i, описанную в наследнике, а базовая i будет скрыта.
То бишь тут 2 переменных с именем i в этой программе?
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что значит n=n/10 ? Anya She Помощь студентам 3 12.11.2012 06:50
Что значит на СИ++: while (x!=y) Светлана94 Помощь студентам 3 20.09.2012 20:29
Что значит \n в С++ compod Общие вопросы C/C++ 11 02.05.2011 02:45
Что это за знак и что он значит? Яр|/||< (^_^) Свободное общение 10 04.07.2010 13:16
Что значит Inc(x)? Vadim123456 Помощь студентам 6 27.04.2010 23:19