Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/107: Рейтинг темы: голосов - 107, средняя оценка - 4.83
9 / 9 / 0
Регистрация: 27.01.2013
Сообщений: 248

Собеседование

07.05.2013, 21:51. Показов 22043. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Может ли кто-то подсказать, какие знания и навыки необходимы по си шарп для устройства джуниором в какую-нибудь контору.
Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2013, 21:51
Ответы с готовыми решениями:

Собеседование 23.06.17
1. Дана строка символов ( и ). Определить является ли она корректной скобочным выражением. Определить максимальную глубину вложенности...

Junior c# собеседование
Какие лучше прочитать книги перед собеседованием(кроме Рихтера)? Какие минимальные знание нужны? Если важно то город Минск

Атрибуты и директивы препроцессора собеседование
Господа, скажите пожалуйста свое мнение, насколько важно на собеседовании на позицию джуниора си шарп знать темы "Атрибуты и директивы...

36
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.05.2013, 20:54
Студворк — интернет-сервис помощи студентам
Я сказал, что утиная типизация обеспечивает выполнение foreach'а вне зависимости от того, реализуется ли IEnumerable, если есть необходимые методы, а также то, что возможно указать явное приведение типа в блоке инициализации итератора, чтобы не писать в коде перлы вроде
C#
1
2
foreach(object o in collection)
   int x = (int) o;
а писать нормально
C#
1
foreach(int x in collection)
Попробуй поспорить с этим.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.05.2013, 20:59
Цитата Сообщение от dev-a1056 Посмотреть сообщение
абсолютно вранье.

C#
1
2
3
4
5
var buffer = new byte[bufferSize];
            foreach(string s in buffer)
            {
                //не скомпилиться, а если ты говоришь о динамической типизации, то это рантайм
            }
Добавлено через 5 минут
твой пример работает, только потому, что допустим явный каст object к int, но проверка типов все равно статическая.

короче, иногда лучше молчать..
Цитирую полностью, теперь по частям
твой пример работает, только потому, что допустим явный каст object к int, но проверка типов все равно статическая.
Естественно статическая, это просто явный каст к инту
Кстати foreach один из примеров динамической (не путать с неявной при помощи var) типизации в C#
абсолютно вранье.
А теперь еще раз читаем по ссылочке:
Полный ответ на этот вопрос такой: «Для того чтобы конструкция foreach успешно компилировалась необходимо, чтобы у объекта был метод GetEnumerator(), который вернет объект с методом MoveNext() и свойством Current, а если такого метода нет, то тогда будем искать интерфейсы IEnumerable и IEnumerable<T>».

Причин у такого «утиного» поведения две.

Давайте вспомним старые времена языка C# 1.0, когда язык был простым и понятным, и в нем не было никаких обобщений (generics), LINQ-ов и других замыканий. Но раз не было generic-ов, то «обобщение» и повторное использование было основано на полиморфизме и типе object, что, собственно и делалось в классах коллекций и их итераторов.

В качестве этих самых итераторов выступали пара интерфейсов IEnumerable и IEnumerator, при этом последний в свойстве Current возвращал object. А раз так, то использование интерфейса IEnumerator для перебора элементов строго типизированной коллекции значимых типов приводило бы к упаковке и распаковке этого значения на каждой итерации, что, согласитесь, может быть весьма накладно, когда речь идет о столь распространенной операции как перебор элементов.

Чтобы решить эту проблему и было принято решение использовать хак с утиной типизацией, и забить немного на принципы ООП в угоду производительности. В таком случае, класс мог реализовать интерфейс IEnumerable явно и предоставить дополнительный метод GetEnumerator(), который бы возвращал строготипизированный енумератор, свойство Current которого возвращало конкретный тип, например, DateTime без какой либо упаковки.
0
 Аватар для dev-a1056
228 / 95 / 27
Регистрация: 16.04.2013
Сообщений: 315
Записей в блоге: 2
09.05.2013, 21:01
ну так спасибо хотябы скажи, что направил на путь истинный
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.05.2013, 21:02
dev-a1056, так я ж тебе советую это сделать. MVP черным по белому пишет, что в foreach применяется хак с утиной типизацией, так что это ты мне спасибо говори, за что - сам написал.
0
 Аватар для dev-a1056
228 / 95 / 27
Регистрация: 16.04.2013
Сообщений: 315
Записей в блоге: 2
09.05.2013, 21:02
ссылочка, то это понятно, но вот речь там не о динамической типизации. Ну не поленись почитай определение.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.05.2013, 21:03
dev-a1056, утиная типизация == динамическая типизация. О чем написано прямо
Чтобы решить эту проблему и было принято решение использовать хак с утиной типизацией, и забить немного на принципы ООП в угоду производительности.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.05.2013, 21:06
dev-a1056, ты намекаешь на то, что
Цитата Сообщение от Psilon Посмотреть сообщение
утиная типизация == динамическая типизация
это не так? Если да, то почему?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
10.05.2013, 08:20
dev-a1056 я хотя бы аргументирую свое мнение, а не говорю, что "ты все-таки тупой" и тд.
Утиная типизация (duck typing) – динамическая типизация, в которой семантика объекта определяется набором методов и полей, работающих на объекте, а не через наследование от классов или интерфейсов.
значит, я прав.
Если ты мне аргументировано докажешь, что я не прав - я признаю это.

А пока ты только кидаешься какашками вместо аргументации
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
10.05.2013, 11:04
Psilon, не стал бы на вашем месте доверять какому- то блогу.
Пока единственный представитель динамической типизации в С#
это тип dynamic.
Да и в том блоге нету даже слова динамический(-ая)
только утиная

Цитата Сообщение от Psilon Посмотреть сообщение
Утиная типизация (duck typing) – динамическая типизация, в которой ......
Похоже это вы тоже с блога взяли к С# не относящемуся .

Цитата Сообщение от Psilon Посмотреть сообщение
утиная типизация == динамическая типизация
Ну не обязательно . Правда кроме википедии по "утиная типизация " пока ничего внятного не нашел так что буду благодарен за
ссылку нормальную

от Википедии
Неявная типизация, латентная типизация или утиная типизация (калька с англ. Duck typing) — вид динамической типизации,
Всего лишь вид. Может быть динамической типизацией, используемый в языках программирования ,а может и не быть
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
10.05.2013, 11:24
MrCold,
Всего лишь вид. Может быть динамической типизацией, используемый в языках программирования ,а может и не быть
Корова вид животного. Всего лишь вид. Может быть животным, а может и не быть

Добавлено через 1 минуту
MrCold,
не стал бы на вашем месте доверять какому- то блогу.
я доверяю своим глазам. Если реализация форича обеспечивается не интерфейсом IEnumerable, а наличием определенных методов, то это и есть динамическая(утиная) типизация.
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
10.05.2013, 13:18
Цитата Сообщение от Psilon Посмотреть сообщение
Корова вид животного. Всего лишь вид. Может быть животным, а может и не быть
Вот не надо меня коверкать
Корова вид животного. Всего лишь вид. Может быть КОРОВОЙ, а может и не быть
Вы прекрасно поняли о чем речь .

foreach реализован через неявную типизацию, а ни динамическую
foreach ( VAR in array)
var, а ни dynamic
не хотите не соглашайтесь . Но по мне тут все довольно прозрачно
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
10.05.2013, 13:25
MrCold, я про внутреннее устройство foreach. Он устроен примерно так
C#
1
2
3
4
5
6
7
8
void foreach(IEnumerable<T> collection)
{
    var iter = collection.GetEnumerator();
    while(iter.MoveNext())
    {
        //тело цикла
    }
}
то есть для работы необходимо передать объект, реализующий интерфейс с методом MoveNext. А теперь вопрос, если мы не реализуем никаких интерфейсов (как в моем примере), вопрос: как работает форич, если мы предеаем внутрь object? Разрабы ведь заранее не знают, что я сделал класс MyClass.
C#
1
2
3
4
5
6
7
8
void foreach(object collection)
{
    var iter = collection.GetEnumerator(); //мы не можем вызвать метод GetEnumerator, так как у object его нет!
    while(iter.MoveNext())
    {
        //тело цикла
    }
}
ну так как он работает в таком случае?
0
10.05.2013, 14:02

Не по теме:

из темы повырезали половину постов? нифига ж не ясно, какой-то разгор Psilon с самим собой

0
10.05.2013, 16:29

Не по теме:

Jupiter, Да бывает.. :(

0
 Аватар для pro100saniok
42 / 42 / 3
Регистрация: 11.04.2010
Сообщений: 177
29.08.2013, 19:03
Здравствуйте!
Готовлюсь к своему первому собеседованию, на позицию ASP.NET developer.
Фирма которая будет проводит собеседование, поставила следующие требование к вакансии:
-знания asp.net;
-понимание архитектуры сети и структур пользовательского интерфейса;
-знания JavaScript, HTML, CSS.
Ну вообщем читаю Троелсена(торопливо, не разбирая примеры в Visual Studio), проходил и прохожу курсы на intuit, по C# и asp.net.
До собеседования осталось всего ничего, каких то пару дней. На что особо акцентировать внимание, ну и как максимально эффективно использовать оставшиеся время?
Заранее благодарен!!!
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.08.2013, 19:08
pro100saniok, а JS знаете?

Алсо с большой долей вероятности спросят немного по SQL ( как сделать джойн двух табличек, какие джойны бывают и т.д., вряд ли что-то сложнее).
1
 Аватар для pro100saniok
42 / 42 / 3
Регистрация: 11.04.2010
Сообщений: 177
29.08.2013, 19:14
Цитата Сообщение от Psilon Посмотреть сообщение
pro100saniok, а JS знаете?
Ну основы думаю да, так само проходил курс на intuit "Основы JavaScript", не один раз использовал библиотеку jQuery (ну конечно, тут особого ума не надо)))), ну и время от времени читаю статьи по JS, в зависимости от необходимости.

Алсо с большой долей вероятности спросят немного по SQL ( как сделать джойн двух табличек, какие джойны бывают и т.д., вряд ли что-то сложнее).
забыл написать LINQ, SQL в требование тоже есть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2013, 19:14

Что не так в списке освоенных технологий, если не пригласили на собеседование?
Работаю на одной конторке с другом. У нас приблизительно одинаковый опыт.Составил он и я резюме.Его пригласили на соседование ,меня...

Необычное собеседование не на работу, а на курсы по C#. Какие вoпpocы могут быть
Одна фирма в моем городе набирает студентов на трейнинг-курсы с последующим трудоустройством учащихся, если человек все хорошо освоит и...

Собеседование по .NET
Здравствуйте! Через несколько дней иду на собеседование на фирму. Направленность фирмы: социальные сети, бизнес приложения, разработка,...

Моё собеседование на NET Core
Искал работу c# разработчик , в итоге предложили поработать со стеком ASP. Теоретически меня спрашивали только про основы ООП, в итоге дали...

Собеседование. Принцип работы браузера
На собеседовании задали такой вопрос: &quot;Пользователь открывает пустой браузер и вводит в адресную строку, например, www.google.ru и жмет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru