Каталоги Сервисы Блограйдеры Обратная связь Блогосфера
Какой рейтинг вас больше интересует?
|
Темы собеседования на должность ASP.NET разработчика2013-03-15 01:55:00... темы вопросов на собеседовании. Нашел в интернете ... + развернуть текст сохранённая копия В продолжение темы вопросов на собеседовании. Нашел в интернете еще один представительный список с вменяемыми ответами. Хотя, конечно, на полноту ответы не претендуют. Оригинал лежит здесь . Перенес его сюда как есть не внося никаких изменений.
Тэги: .net, asp.net, framework, вопрос, собеседование Вопросы на собеседовании по .Net Framework с ответами2013-03-14 23:32:00+ развернуть текст сохранённая копия В продолжение предыдущего поста, перенесу сюда и вопросы / ответы по .Net. Ответы, возможно, где-то не точные, но трогать их не буду. Оригинал здесь 1. Поддерживает ли C# interfaces множественное наследование да 2. Поддерживает ли C# class множественное наследование нет . Только наследование от одного класса и множества интерфейсов 3. Какая разница между классами и структурами структуа - тип значения, хранится в стеке, не может наследоваться; класс - тип ссылка, хранится в куче. 4. HashTable - что это такое, как устроен Позволяет получить доступ к члену коллекции с использованием уникального ключа. System.Collections.Hashtable : IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback, ICloneable 5. Кому доступна protected переменная класса -Доступна любому классу который наследует данный класс 6. Наследуются ли переменные класса с областью видимости private -Да, но они не доступны. Также они не видимы и не доступны через интерфейс класса от которого они наследованы 7. Назовите .Net класс от которого унаследованы все остальные -System.Object 8. Что означает термин immutable - данные на которые ссылается переменная не могут быть изменены. Внимание: значение переменной может быть изменено, но в таком случае данные помеченные как immutable уничтожаются и новвые данные создаются в памяти. 9. Как можно упорядочить элементы массива в обратном порядке - последовательно вызвать Sort() затем Reverse() 10. Будет ли выполнен блок finally, если исключение не произойдет - Да 11. Что такое делегат? - Делегат – это объект, инкапсулирующий ссылку на метод. Иными словами это тип, который ссылается на метод. Как только делегату назначен метод, он начинает работать точно также как и этот метод. Метод Делегат, может быть использован точно также как и любой другой метод с параметрами и возвращать значение. 12. Какая разница между делегатом и событием? Delegate– это объект, инкапсулирующий ссылку на метод (указатель на функцию) Событие: Класс публикует событие, которое он может инициировать и любые классы могут подписаться на это событие. 13.Что такое частные и общие сборки? Частные находятся в каталоге программы, а общие в GAC 14.Что такое .Net Framework? Общеязыковая исполняющая среда common language runtime (CLR) + и библиотека классов framework class library (FCL). 15.Какая разница между классами System.String и System.Text.StringBuilder Данные, хранящиеся в классе System.String и есть неизменяемые (immutable). Класс System.StringBuilder разрабатывался так, чтобы над изменяемой строкой можно было проделать множество операций. То есть при каждой операции над объектом класса System.String происходит перенос данных в новую область памяти, что влияет на производительность программы. 16. Что такое строгая типизация (strong-typing) в сравнении со слабой типизацией (weak-typing) Strong type: Проверка типов перемессых на этапе компиляции Weak type: Проверка типов переменных во время run time. 17.Использование Assembly.Load - это статическая или динамическая ссылка? Динамическая загрузка assembly во время runtime. Метод из System.Reflection. 18. Может ли DateTime равняться null? Почему? Нет, т.к. DateTime это тип значение, наследован из System.ValueType 19. Как поменить метод в качестве устаревшего (obsolete)? [Obsolete(\"This is a message describing why this method is obsolete\")] public int Foo() {...} 20. Сравните использование абстрактного базового класса и использование интерфейса? - Абстракный класс помимо абстрактных методов и свойств может содержать обычные методы, свойства, индексаторы и т.п. как и любой другой клас. Интерфейс же содержит только публичные абстрактные методы и свойства, без указания public и abstract 21.Коллекции в .Net ArrayList(any type of object), Queue(FIFO: first-in, first-out), Stack (LIFO: last-in, first-out), StringCollection (like ArrayList, but elements are strings), BitArray(collection of boolean values), Hashtable 22. Generic Collections List, Dictionary, Queue, Stack, SortedList, Collection, ReadOnlyCollection 23. Методы сортировки элементов Пузырек(BubbleSort), Вставки(InsertSort), Шэлла(ShellSort), Пирамидальная(HeapSort), QuickSort (деление по полам, сортировка частей с рекурсией), Поразрядная (RadixSort) 24.Методы расширения C# (IEnumerable) All, Any, Average, Cast, Concat, Contains, Cout, DefaultIfEmpty, Distinct, First, Last, Max, Min, Skip, Where, Union 25. Как сделать перебор коллекции без foreach LINQ. var myColl = new Hashtable(); IDictionaryEnumerator myEnum = myColl.GetEnumerator(); while (myEnum.MoveNext()) {System.Console.WriteLine(myColl[myEnum.Current]); } 26. Что такое "Implicitly Typed Local Variables" Переменные объявленные с помощью var: var i = 5; В отличие от explicit type : int i = 5; 27. Чем ссылочный тип отличается от размерного Размерный тип: Если некоторая переменная имеет размерный тип, она содержит реальные данные. Так что первое правило для размерных типов таково: они не могут быть null. При объявлении переменной размерного типа происходит выделение в стеке области. При присвоении значения переменной размерного типа в выделенное пространство в стеке помещается это значение. В С# определено несколько размерных типов, включая перечислители (enumerators), структуры (structures) и примитивы (primitives). Объявляя переменную одного из этих типов, вы каждый раз выделяете в стеке некоторое число байтов, ассоциированных с этим типом, и работаете напрямую с выделенным массивом битов. Кроме того, когда вы передаете переменную размерного типа, передается значение переменной, а не ссылка на лежащий в ее основе объект. Ссылочные типы: похожи на ссылки в C++, где они являются указателями, привязанными к типам (type-safe pointers). Это значит, что ссылка (если она не равна null) — это не просто адрес, который, как вы полагаете, может указывать (а может и не указывать) на определенный объект. Ссылка всегда гарантированно указывает объект заданного типа, уже выделенный в куче. Кроме того, ссылка может быть равна null. Как и в случае размерных типов, в С# несколько типов определены как ссылочные: классы, массивы, делегаты (delegates) и интерфейсы. Объявляя переменную одного из этих типов, вы каждый раз выделяете в куче некоторое ассоциированное с этим типом число байт. Но вместо того, чтобы работать с ними напрямую (как в случае размерных типов), вы работаете со ссылкой на выделенный объект. 28.Что такое Упаковка и распаковка? В простейшем случае при упаковке размерный тип преобразуется в ссылочный. В обратном случае ссылочный тип распаковывается (unbox) в размерный. Замечательно в данной методике то, что объект лишь тогда является объектом, когда это необходимо. Допустим, вы объявляете переменную типа System.Int32. Для нее выделяется память в стеке. Вы можете передавать эту переменную любому методу, определенному в качестве принимающего аргументы типа System.Object, а также обращаться к любому из ее членов, к которому у вас есть доступ. Поэтому вы воспринимаете и ощущаете ее как объект. Но в реальности это всего 4 байта в стеке. Только когда вы пытаетесь использовать эту переменную согласно правилам, определенным интерфейсом базового класса System.Object, система автоматически упаковывает переменную, в результате чего она становится ссылочным типом и может быть использована так же, как любой объект. Упаковка — это механизм, посредством которого в С# любая сущность может быть представлена в виде объекта. Это позволяет избежать издержек, неизбежных в том случае, если б всякая сущность на самом деле была объектом. При упаковке (т. е. преобразовании из размерного типа в ссылочный) явного приведения типов не требуется. Однако при распаковке — преобразовании из ссылочного типа в размерный — приведение типов необходимо. Это так, потому что в случае распаковки объект может быть приведен к любому типу. Преобразование позволяет компилятору проверить, возможно ли приведение для заданного типа переменной. Поскольку приведение типов подчинено строгим правилам, определяемым CTS. int foo = 42; // Размерный тип. object bar = foo; // Переменная foo упакована в bar. int foo2 = (int)bar; // Распаковка и приведение к типу int. 29. Что такое примитивы в C# C# примитивы это предопределенные внутренние типы. Несмотря на то, что примитивы определены в качестве зарезервированных слов C#, в конечном счете они являются псевдонимами для типов в определенных в классе .Net Framework. Примитива, это размерные типы которые хранят свои значения в стеке, за исключением типа string который является классом, а значит ссылочным типом. Несмотря на то, что примитивы это размерные типы, они являются объектами с интерфейсами и публичными методами: bool – System.Boolean, byte – System.Byte (8bit), char – System.Char (16 bit unicode), decimal – System.Decimal(128bit), double – System.Double(64 bit flt), float – System.single(32bit flt), int – System.Int32(32bit), long – System.Int64, sbyte – System.SByte(8bit), short – System.Int16, string – System.String, uint – System.UInt32, ulong – System.UInt64, ushort – System.UInt16. 30. Какой тип является базовым для всех остальных типов. Корень всех типов «System.Object» В конечном счете все типы происходят от типа System.Object, что позволяет гарантировать наличие у каждого типа минимального набора функциональных возможностей. Все типы получают «бесплатно» четыре открытых метода: bool Equals(), int GetHashCode(), Type GetType(), string ToString. 31. Что такое Атрибуты Атрибут – средство добавления ДЕКЛАРАТИВНОЙ информации к элементам программного кода. Назначение атрибутов – внесение всевозможных не предусмотренных обычным ходом выполнения приложения изменений: описание взаимодействия между модулями; дополнительная информация, используемая при работе с данными (управление сериализацией); отладка; и многое другое. Эта декларативная информация составляет часть метаданных кода. Она может быть использована при помощи механизмов отражения. Структура атрибута регламентирована. Атрибут – это класс. Общий предок всех атрибутов – класс System.Attribute. Предопределенные: DllImport, Serializable, NonSerialized, Obsolette, Coditional Пользовательские: using System; using Sc=System.Console; public class URLAttribute:Attribute { public URLAttribute(string url) { this.URL=url; } protected string uRL; public string URL { get{return uRL;} set{uRL=value;} } } [URLAttribute("www.xakep.ru")] class HackerLink {} class Application { public static void Main() { Type type=typeof(HackerLink); foreach(Attribute attr in type.GetCustomAttributes(false)) { URLAttribute urlAttr=attr as URLAttribute; if(null!=urlAttr) Sc.WriteLine("Target Link Is "+urlAttr.URL); } Sc.ReadLine(); } } 32. отражение - Reflection Отражение позволяет динамически определять сведения и данные о типах в программе. см. Пример из п.п. 31 Type type=typeof(HackerLink); foreach(Attribute attr in type.GetCustomAttributes(false)) { URLAttribute urlAttr=attr as URLAttribute; } 33. Что не так со следующей строкой DateTime.Parse(myString); Не указывает локаль или формат 34. Что такое ".Net Type System Unification" Основаная идея унификации типов, это обеспечить мост между ссылочными и размерными типами. В C# все типы, включая размерные наследованы от типа "System.Object". Таким образом становится возможным вызывать методы объекта для любого значения, даже для значений "примитивов" таких как int. 35. Что такое MemberwiseClone() ? Метод MemberwiseClone производит поверхносное(shallow) копирование объекта, путем создания нового объекта и копирования не статических полей текущего объекта в новый объект. Если поле является размерным типом, производится побитовое копирование, если поле - ссылочного типа, ссылка копируется, но объект на который ссылаются - нет. Поэтому оргинальный объект и его клон ссылаются на один и тот же объект. Тэги: .net, framework, вопрос, собеседование Вопросы на собеседовании по ASP.NET с ответами2013-03-14 21:45:00... и дополнил. На собеседованиях по ASP.NET ... + развернуть текст сохранённая копия Здравствуйте, читатели. Нашел тут небольшой список вопросов по ASP.NET с предполагаемыми ответами. Решил перенести сюда тоже, возможно, кому-то пригодятся. Ссылка на оригинал в конце поста. За ответы зуб не дам, я их немного изменил и дополнил. На собеседованиях по ASP.NET действительно задавали подобные вопросы. Так что, если ответы вам не нравятся изучайте google и msdn... 1. Зачем используется WebMethods на страницах ? В отличие от использования в веб сервисах, на страницах ASP.NET AJAX атрибут [WebMethod] указывает на методы, которые могут быть вызваны с клиента (из javascript-а, например). Подробнее об этом можно прочитать здесь 2. Что такое MasterPage и зачем они ? Главные страницы ASP.NET позволяют создавать последовательную структуру страниц в приложении. Одна главная страница определяет вид, наполнение и стандартное поведение для всех страниц (или группы страниц) приложения. Затем можно создавать отдельные страницы содержимого, включающие содержимое, которое необходимо отобразить. Когда пользователи запрашивают страницу содержимого, выходная страница представляет собой сочетание структуры главной страницы и содержимого со страницы содержимого. Главная страница представляет собой файл ASP.NET с расширением MASTER (например MySite.master) с предопределенной структурой, которая может включать статический текст, элементы HTML и серверные элементы управления.Главная страница обозначается особой директивой @ Master, заменяющей директиву @ Page, которая используется для обычных страниц .aspx.Эта директива выглядит следующим образом: <%@ Master Language="C#" %> Директива @ Master может включать практически все директивы, которые могут содержаться в директиве @ Control. Например, следующая директива главной страницы включает имя файла с выделенным кодом и назначает имя класса главной странице: <%@ Master Language="C#" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> Кроме директивы @ Master, главная страница также содержит все элементы HTML верхнего уровня для страницы, такие как html, head и form.Например, в качестве структуры главной страницы можно использовать таблицу, элемент img для эмблемы компании, статический текст для уведомления об авторских правах и серверные элементы управления для создания стандартной системы переходов по веб-узлу.На главной странице можно использовать любые элементы HTML и ASP.NET.
<%@ Master Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server" > <title>Master page title</title> </head> <body> <form id="form1" runat="server"> <table> <tr> <td><asp:contentplaceholder id="Main" runat="server" /></td> <td><asp:contentplaceholder id="Footer" runat="server" /></td> </tr> </table> </form> </body> </html>
Содержимое для элементов управления — "местозаполнителей" на главной странице определяется путем создания отдельных страниц содержимого, которыми являются страницы ASP.NET (ASPX-файлы и файлы с выделенным кодом), связанные с определенной главной страницей.Связывание осуществляется в директиве @ Page страницы содержимого путем включения атрибута MasterPageFile, указывающего на используемую главную страницу.Например, страница содержимого может иметь следующую директиву @ Page, связывающую ее со страницей Master1.master: <%@ Page Language="C#" MasterPageFile="~/MasterPages/Master1.master" Title="Content Page"%> На странице содержимого содержимое создается путем добавления элементов управления Content и сопоставления их с элементами управления ContentPlaceHolder на главной странице.Например, главная страница может содержать "местозаполнители" содержимого Main и Footer.На странице содержимого можно создать два элемента управления Content: один сопоставляется с элементом управления ContentPlaceHolderMain, а второй — с элементом управления ContentPlaceHolderFooter После создания элементов управления Content можно добавить в них текст и элементы управления.На странице содержимого все, что не находится внутри элемента управления Content (за исключением блоков скрипта для серверного кода), приводит к возникновению ошибки.Все задачи, выполняемые на странице ASP.NET, могут быть выполнены на странице содержимого.Например, можно создать содержимое для элемента управления Content с помощью серверных элементов управления и запросов к базам данных или других динамических механизмов. Страница содержимого может выглядеть следующим образом: <% @ Page Language="C#" MasterPageFile="~/Master.master" Title="Content Page 1" %> <asp:Content ID="Content1" ContentPlaceHolderID="Main" Runat="Server"> Main content. </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="Footer" Runat="Server" > Footer content. </asp:content> Директива @ Page связывает страницу содержимого с определенной главной страницей и определяет заголовок для страницы, которая будет объединена с главной.Обратите внимание, что страница содержимого не содержит разметки вне элементов управления Content.(Главная страница должна содержать элемент head с атрибутом runat="server", чтобы установка заголовка могла быть выполнена во время выполнения.) Можно создать несколько главных страниц и определить различную разметку для различных частей узла, а также определенный набор страниц содержимого для каждой главной страницы. 3. Жизненый цикл обработки страницы (Page processing life cycle.) - User->Request page->Browser->WebServer - Step 1 (page request). Compile page or Pull it from cache - Step 2 (start). Set Request and Response, determine IsPostBack - Step 3 (page init). Initialize page controls (but not their properties). Apply page theme. - Step 4 (load). If PostBack, load control properties from view state - Step 5 (validation). Validate page and validator controls - Step 6 (PostBack event handling). Call Control event handlers (for PostBack requests) - Step 7 (rendering). Save view state - WebServer->Browser->User - Step 8 (unload). Unload request and response. Perform cleanup. Disacard the page 4. События обработки страницы (Page Life Cycle Events) - PreInit. Первый event используется для указания MasterPage или Темы из кода, также для создания динамических контролов. - Init. Вызывается после инициализации каждого контрола - InitComplete. Вызыватся после инициализации страницы и всех контролов. - PreLoad. Полезен для операций после инициализации, но до загрузки ViewState. - Load. Страница инициализирована и состояние реконструровано, сначала вызывается для страницы, потом для контролов на ней. Код обычно проверяет IsPostBack и затем инициализирует свойства контролов. - Control (PostBack) event(s). Вызов событий контролов или страницы которые инициировали событие PostBack - LoadComplete. На этом этапе, все контролы загружены. Место для дополнительной обработки. - PreRender. Для финальных измненений страницы или контролов на странице - SaveStateComplete. До этого события, ViewState уже задан. Используется для обработки которая требует что бы ViewState был уже задан. - Render. Для генерации HTML, DHTML, Scripts для своих пользовательских контролов - UnLoad. Для освобождения Управляемых (Managed) ресурсов использованых в процессе обработки страницы 5. Что такое фильтры ответов Response Filters ? Когда обозреватель запрашивает ASP.NET-страницу с веб-сервера, движок ASP.NET обрабатывает запрос в несколько шагов, результатом которых будет разметка, возвращенная запрашиваемому обозревателю для последующего отображения. Этапы данного процесса иногда называют HTTP- конвейером , который может выполнить такие задачи, как идентификация, авторизация, а также заставить запрашиваемую страницу обработать свое содержимое. На одном из последних этапов HTTP-конвейера обработанная разметка передается фильтру ответов (response filter), который (при наличии) имеет возможность исследовать и изменить разметку до того, как она будет возвращена запрашиваемому обозревателю. void Page_Load(){ Response.Filter = new ResponseFilterClassName(Response.Filter)} ... public class WhitespaceFilterVB: MemoryStream { private Stream outputStream = null; public void New(Stream output) { outputStream = output; } public overrides void Write(Byte[] buffer,int offset, int count){} } Ссылка на оригинал: здесь Тэги: asp.net, вопрос, собеседование Собеседования о жизни Италийских отцов. Святитель Григорий Двоеслов2013-03-14 16:59:00
Главная / Главные темы / Тэг «собеседования»
|
Категория «Кино»
Взлеты Топ 5
Падения Топ 5
Популярные за сутки
300ye 500ye all believable blog bts cake cardboard charm coat cosmetic currency disclaimer energy finance furniture house imperial important love lucky made money mood myfxbook poetry potatoes publish rules salad seo size trance video vumbilding wardrobe weal zulutrade агрегаторы блог блоги богатство браузерные валюта видео вумбилдинг выводом гаджеты главная денег деньги звёзды игр. игры императорский календарь картинка картон картошка клиентские косметика летящий любить любовь магия мебель мир настроение невероятный новость обзор онлайн партнерские партнерских пирожный программ программы публикация размер реальных рубрика рука сайт салат своми событий стих страница талисман тонкий удача фен феншуй финансы форекс цитата шкаф шуба шуй энергия юмор 2009 |
Загрузка...
Copyright © 2007–2024 BlogRider.Ru | Главная | Новости | О проекте | Личный кабинет | Помощь | Контакты |
|