C#: вопросы с собеседования. Часть 1
Name ten c# keywords
Зарезервированные слова – это слова, которые имеют некоторое значения для компилятора, по этой причине их нельзя использовать в качестве имен переменных, методов, классов и т.д.
Список зарезервированных слов:
abstract event new struct as explicit null switch base extern object this bool false operator throw break finally out true byte fixed override try case float params typeof catch for private uint char foreach protected ulong checked goto public unchecked class if readonly unsafe const implicit ref ushort continue in return using decimal int sbyte virtual default interface sealed volatile delegate internal short void do is sizeof while double lock stackalloc else long static enum namespace string dynamic.
What is a 'static' class?
Если класс объявлен как статический (static), то
- такой класс может содержать только статические методы
- от статического класса нельзя унаследоваться
- нельзя создать экземпляр статического класса (т.е. они не содержат конструкторов)
Пример:
public static class Helper { public static string SomeMethod() { return ""; } }
Использование:
string value = Helper.SomeMethod();
Is multiple inheritance supported in .Net?
Нет, не поддерживается. Можно унаследоваться только от одного класса, но можно наследоваться одновременно от нескольких интерфейсов.
How 'System.String' class differs from most of other classes?
Важное отличие — экземпляр класса string нельзя менять. Это, в частности, означает что если надо передать в функцию изменяемый параметр, то для string, в отличие от других классов, надо указывать ref.
Will a 'finally' block be executed if there was no exception thrown?
Да, блок finally вызывается всегда.
What is a satellite assembly?
В сателитной сборке находятся только локализованные ресурсы, кода нет вообще.
Как создавать сателитные сборки
How 'protected' access modifier affects visibility?
Объект становится видимым наследникам класса.
What does operator 'as' do?
Оператор as служит для безопасного преобразования типов, при котором не выдается исключение.
SomeObject obj = e.Node.Tag as SomeObject;
Если e.Node.Tag не типа SomeObject, то переменная obj будет равна null.
Нельзя использовать оператор as для простых типов (int, bool и т.д.)
What does keyword 'final'?
В языке C# нет оператора final. Final используется в Java, в C# аналог final является зарезервированное слово sealed.
Can different access modifiers be applied on the getter and setter of a property?
Да, следующая конструкция будет правильной:
public string Prop { get; protected set; }
Can interface members be private?
Члены интерфейса не могут быть приватными.
What does keyword 'in'?
Оператор для перебора коллекции. Например: foreach(int i in someIntArray).
How 'protected internal' access modifier affects visibility?
Член виден наследникам из той же сборки.
Can 'break' exit a finally block?
Нет, finally block выполняется всегда.
How to apply attribute to method return value?
Надо написать [return: AttributeDeclaration]. Аналогично для сборки — [assembly: AttributeDeclaration].
What is purpose of 'IDisposable' interface?
Ручное удаление объектов, для которых удаление в неопределённый момент может привести к нежелательным последствиям.
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |