Коллеги, предлагаю к обсуждению в данной дискуссии вопросов связанных с практикумом C#.
Решил ли кто-то первую задачу из блока "Массивы и индексаторы"? Там нужно найти и исправить ошибки приведения типов массивов.
Одна из ошибок - попытка downcast массива. Как сказано в подсазке, это недопустимо.
Вторая - попытка вызова специального метода производного класса после приведения всего массива к базовому типу (интерфейсу).
Для их решения я выполнил необходимые приведения типов поэлементно. После этого программа, по-видимому, работает корректно - все методы, попытка вызвать которые была в исходном коде, вызываются и выполняются. Но исправленный код не принимается. Что не так?
Спасибо.
Прикладывайте скрины заданий .... так проще будет разобраться
Вопрос к администрации! Будет ли увеличиваться количество заданий по каждой из тем ? К примеру по С# в каждом разделе всего по 5 заданий, этого очень мало. Хотелось бы как минимум 20 как в практикуме по html и css. Чтобы задания более обхватывали все аспекты изученных тем.
Спасибо!
Здравствуйте, к сожалению, планов на дополнение уже записанных видео курсов нет. Но мы учли пожелание Ваше и многих других пользователей и большинство новых видео курсов будут иметь упор на практические навыки, в том числе будет добавлено более обширное домашнее задание. Желаем успехов в дальнейшем обучении!
Есть проблема с задачей 2 блока "Введение в ООП. Классы и объекты" практикума C# Essential. Не принимается решение:
class MyClass
{
private string name;
public string Name
{
get
{
if ((name == String.Empty) || (name == null))
return "Name is not defined";
else
return this.name;
}
set
{
name = value;
}
}
}
Почти все попытки на перебор вариантов потратил.
Добрый вечер, прохожу курс C# Starter. Внутри него пункт "Переменные и типы данных" и 3 задача: "Создайте две переменных типа double с именами op1 и op2 и начальными значениями 4.6 и -34.72 соответственно. Затем создайте переменные sum, dif, mul и div и присвойте им значения сумы, разницы, произведения и деления значений op1 и op2 соответственно. После этого выведите в консоль значения sum, dif, mul и div по очереди, каждое – с новой строки, в таком формате:
<операнд1> <знак операции> <операнд2> = <результат операции>. Используйте элементы форматирования."
Конкретно ссылка: http://skills.itvdn.com/#/examination/6c5fea45-22cd-485b-9614-3166bb2ee8b8
Вопрос в том, что не принимает никакой ответ по данному пункту, к примеру очевидный вариант не подходит, потерял много баллов, перепробовал все варианты, не понятно, что не так?
Вот мой ответ:
double op1 = 4.6;
double op2 = -34.72;
double sum = op1 op2;
double dif = op1 - op2;
double mul = op1 * op2;
double div = op1 / op2;
Console.WriteLine("{0} {1} = {2}", op1, op2, sum);
Console.WriteLine("{0} - {1} = {2}", op1, op2, dif);
Console.WriteLine("{0} * {1} = {2}", op1, op2, mul);
Console.WriteLine("{0} / {1} = {2}", op1, op2, div);
Метод string.IsNullOrEmpty(name) не проще использовать для проверки (тогда вообще тернарным оператором красиво пишется)? Попробуйте ещё this не указывать.
Действительно проще, и с тернарным оператором ответ принят. Спасибо!
Хорошо, что помогло. А глянь, пожалуйста, мой вопрос выше. Может твоё решение прошло.
Console.WriteLine("{0} {1} {2} = {3}", op1, ' ', op2, sum);
Спасибо большое! Странно, я такой же вариант пробовал...Наверное где-то что-то забыл указать)
Здравствуйте, никак не могу понять, почему система не принимает в практикуме C# / Ограничения универсальных шаблонов / 5 задание "Класс Dictionary":
Заполните словарь dict парами 1 – «one» .. 4 – «four» и выведите их на экран в формате «ключ-значение». Диапазон ключей для вывода – 0..10. В случае, если какому-то ключу не присвоено значение – вывести соответствующее сообщение "i has no value", где i - ключ
Дан изначальный код:
using System;
using System.Collections.Generic;
namespace Less11_task05
{
class Program
{
static void Main( string args )
{
Dictionary<int, string> dict = new Dictionary<int, string>();
Console.ReadKey();
}
}
}
Решение вроде же должно быть простым, уже использовал под 40 попыток, но уже из принципа хочу понять - что не так?
Вот мой код:
using System;
using System.Collections.Generic;
namespace Less11_task05
{
class Program
{
static void Main( string args )
{
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1,"one");
dict.Add(2,"two");
dict.Add(3,"three");
dict.Add(4,"four");
for(int i=0; i<=10;i )
if (dict.ContainsKey(i))
Console.WriteLine("{0}-{1}",i,dict[i]);
else
Console.WriteLine("{0} has no value",i);
Console.ReadKey();
}
}
}
Ответ на вопрос Ковариантность и контрвариантность массивов
((MyClass)BaseArray[i]).Method2();
MyClass[] DerArray = (MyClass[])BaseArray;
Александр Евсеев, Этот вариант система уже принимает. А вот когда
Console.WriteLine(i "-" dict[i]);
почему-то нет.
using System;
using System.Collections.Generic;
namespace Less11_task05
{
class Program
{
static void Main(string[] args)
{
Dictionary dict = new Dictionary();
dict.Add(1, "one");
dict.Add(2, "two");
dict.Add(3, "three");
dict.Add(4, "four");
for (int i = 0; i <= 10; i )
{
if (dict.ContainsKey(i))
{
Console.WriteLine("{0}-{1}", i, dict[i]);
}
else Console.WriteLine("{0} has no value", i);
}
Console.ReadKey();
}
}
}
такой вариант тоже не принимается, только без операторных скобок на if, for
Как-то разрозненно тут немного. Может лучше создавать отдельный топик соответственно каждому уроку? Ну там, тег соответствующий ставить и название... А то наберётся тут и перемешается заданий с разных тем - пойди найди потом. Всю тему перечитывать придётся.
class Program
{
static void Main(string[] args)
{
Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "one");
dict.Add(2, "two");
dict.Add(3, "three");
dict.Add(4, "four");
for (int i = 0; i <= 10; i++)
{
if (dict.ContainsKey(i))
{
Console.WriteLine("{0}-{1}", i, dict[i]);
}
else
{
Console.WriteLine("{0} has no value", i);
}
}
Console.ReadKey();
}
}