Есть простая структура:
interface IFoo
{
string a{ get; set; }
}
class Program
{
class TestClass : IFoo
{
public string a
{
get { return a; }
set
{
if(DateTime.Now.DayOfWeek != DayOfWeek.Monday)
a = value; //Здесь
else
a = "smth";
}
}
public TestClass(string str)
{
a = str;
}
}
static void Main(string[] args)
{
IFoo qu = new TestClass("lol");
Console.WriteLine(qu.a);
Console.ReadKey();
}
}
На сколько я знаю, у интерфейсов не должно быть полей, но свойства разрешены. Всё же, вызов сетера(в в строке "Здесь" ) кидает StackOverflow. Вопрос: почему?
В отметках "Здесь"
set
{
if (DateTime.Now.DayOfWeek != DayOfWeek.Monday)
a = value; //Здесь
else
a = "smth"; //Здесь
}
Вы рекурсивно вызываете сеттер поля, потому у вас получается бесконечная рекурсия и программа падает с переполнением стека. Чтобы такого избежать, вы можете добавить дополнительное поле, например так
private string _a;
public string a
{
get { return _a; }
set
{
if (DateTime.Now.DayOfWeek != DayOfWeek.Monday)
_a = value; //Здесь
else
_a = "smth"; //Здесь
}
}
Интерфейсы к вашему вопросу не имеют абсолютно никакого отношения.
Создал массив с путями до файлов и создал коллекцию в которую поместил массивДалее написал цикл, который копирует содержимое файлов и дает...
Всем привет! Проблема такая: 18 июня у меня сцена в мобильной игре грузилась за 1-2 секунды, а вот 30 июня сцена стала грузиться 5-6-7 секундКод почти...