public static Test<string> GetTest() { var test = new Test<string>("Test"); var question = new Question<string>( "В каком случае в одной области видимости можно объявить два делегата с одним именем?", ComplexityLevel.Hard); question.AddAnswer(new Answer<string>("Если у делегатов различное количество параметров.", false)); question.AddAnswer(new Answer<string>("Ни в каком.", true)); var textAnswer = new Answer<string>("Если они хранят один и тот же метод.", false); question.AddAnswer(textAnswer); test.AddQuestion(question); question = new Question<string>("Какое утверждение об интерфейсах (Ин.) справедливо?", new Range<int>(2, 2), ComplexityLevel.Hard); question.AddAnswer(new Answer<string>("Ин. поддерживают множественное наследование.", true)); question.AddAnswer(new Answer<string>("Ин. могут содержать поля.", false)); question.AddAnswer(new Answer<string>("Ин. могут содержать конструкторы.", false)); question.AddAnswer(new Answer<string>("Ин. могут содержать cвойства, методы, события", true)); test.AddQuestion(question); question = new Question<string>("Ключевое слово sealed применимо к...", ComplexityLevel.Easy); question.AddAnswer(new Answer<string>("Полям.", false)); question.AddAnswer(new Answer<string>("Интерфейсам.", false)); question.AddAnswer(new Answer<string>("Методам.", true)); test.AddQuestion(question); question = new Question<string>("Что является особенностью пользовательских структур?", ComplexityLevel.Easy); question.AddAnswer(new Answer<string>("Структуры не поддерживают наследование.", true)); question.AddAnswer(new Answer<string>("Структура не может содержать событий.", false)); test.AddQuestion(question); question = new Question<string>( "Какое ключевое слово используется в производном классе для вызова конструктора класса-предка?", ComplexityLevel.Easy); question.AddAnswer(new Answer<string>("class", false)); question.AddAnswer(new Answer<string>("base", true)); question.AddAnswer(new Answer<string>("this", false)); test.AddQuestion(question); question = new Question<string>("В групповой делегат объединили 3 функции и произвели вызов. Что будет получено?"); question.AddAnswer(new Answer<string>("Исключительная ситуация.", false)); question.AddAnswer(new Answer<string>("Массив из трех значений.", false)); question.AddAnswer(new Answer<string>("Значение последней функции в цепочке.", true)); test.AddQuestion(question); return test; }
public static void TestXmlSerializing() { var answer = new Answer<string>("Ответ.", true); var xs = new XmlSerializer<Answer<string>>(); using (var fileStream = File.Create(Path.Combine("save", "answer.xml"))) { xs.Serialize(fileStream, answer); } using (var fileStream = File.OpenRead(Path.Combine("save", "answer.xml"))) { var deserializedAnswer = xs.Deserialize(fileStream); Debug.Assert(deserializedAnswer.Contents == answer.Contents); } }