C# bad и good end

GoldenEagle

Новичок
Регистрация
16.04.2016
Сообщения
24
Благодарностей
3
Баллы
3
Как сделать ,что бы при выполнении кубика он выдавал bad(красный) конец?
 

shade

Client
Регистрация
19.11.2010
Сообщения
580
Благодарностей
341
Баллы
63
Как сделать ,что бы при выполнении кубика он выдавал bad(красный) конец?
Добавь в коде где это требуется следующий код:
Код:
throw new Exception();
Тогда будет выдана ошибка в действии C# и шаблон попадёт в bad end
 

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
что так всего много ) не ужели моей строкой не воспользоваться ? )
 

shade

Client
Регистрация
19.11.2010
Сообщения
580
Благодарностей
341
Баллы
63
что так всего много ) не ужели моей строкой не воспользоваться ? )
Воспользоваться можно, но
Код:
return null;
Вызовет ошибку на уровень ниже, т.к. будет вызван метод ToString() у того объекта который был передан (в данном случаи у объекта null).
Т.е если в следующих версиях ZP что то изменится то этот код может перестать работать, а throw new Exception(); будет работать также.
 
  • Спасибо
Реакции: ggg

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
if (какое сравнение)
{
return null;
}

что может измениться, тогда в catch обворачивать в таком случае думаю что поменяют логику на то что всегда должно быть
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
15 945
Благодарностей
3 892
Баллы
113

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
throw new Exception("бла бла"); ошибка с оповещением

return null; - выход по красной

в чём серьёзные различия ???
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
15 945
Благодарностей
3 892
Баллы
113

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
Для вас нет различий, а при обратке кода программой есть различия.
if (какое сравнение)
{
return null;
}

if (какое сравнение)
{
throw new Exception("бла бла");
}

в чём тут различия ???
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
15 945
Благодарностей
3 892
Баллы
113

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
throw new Exception();

что тогда в этом случае выдаёт ?
 

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
если просто выйти по красной по ошибке то разве есть разнаца ???
 

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
можно так скумекать

if (какое сравнение)
{
project.Senderror("бан");
return null;
}

и чем теперь отличается ?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
15 945
Благодарностей
3 892
Баллы
113
можно так скумекать

if (какое сравнение)
{
project.Senderror("бан");
return null;
}

и чем теперь отличается ?
Вы какой-то ерундой занимаетесь. Допытываетесь из-за мелочи. Объясняю же вам return null - это не вызов ошибки, компилируется этот код по другому.
 

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
Вы какой-то ерундой занимаетесь. Допытываетесь из-за мелочи. Объясняю же вам return null - это не вызов ошибки, компилируется этот код по другому.
не вижу нормальных объяснений что бы это отставить в стойло )))))
 

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
Различие хотя бы в том, что return null - это возврат нуля, а не ошибка.
и если брать эти различая то из общего кода я могу хоть соть сообщение вывести в этом случае, а throw new Exception("бла бла"); выходит без оповещения
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
15 945
Благодарностей
3 892
Баллы
113
и если брать эти различая то из общего кода я могу хоть соть сообщение вывести в этом случае, а throw new Exception("бла бла"); выходит без оповещения
К сожалению, я не могу объяснить вам как-то по-другому. Это рекомендация разработчиков программы - использовать Exception, надеюсь в с этим согласитесь.
 

1977_Alex_2016

Пользователь
Регистрация
15.12.2016
Сообщения
32
Благодарностей
3
Баллы
18
К сожалению, я не могу объяснить вам как-то по-другому. Это рекомендация разработчиков программы - использовать Exception, надеюсь в с этим согласитесь.
нет не соглашусь то что не доработка
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 061
Благодарностей
868
Баллы
113
К сожалению, я не могу объяснить вам как-то по-другому. Это рекомендация разработчиков программы - использовать Exception, надеюсь в с этим согласитесь.
Зато я могу.
return null не должен вызывать ошибки, так как строка (string) - ссылочный тип, но разработчики зеннопостера сделали так, что в их переменных проекта нельзя хранить значения типа null, чтобы не возникали ошибки при их использовании и сравнении. В итоге вылетает ошибка во внутренних механизмах зеннопостера (скорее всего используется сеттер с ограничением установки null значения), но вылетает она позже(на миллисекунды), чем могла бы вылетить при ручной генерации ошибки. Для обычного пользователя это не сыграет никакой роли, так что можно смело использовать и return null;
 
  • Спасибо
Реакции: Dmffmd

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
15 945
Благодарностей
3 892
Баллы
113
Зато я могу.
return null не должен вызывать ошибки, так как строка (string) - ссылочный тип, но разработчики зеннопостера сделали так, что в их переменных проекта нельзя хранить значения типа null, чтобы не возникали ошибки при их использовании и сравнении. В итоге вылетает ошибка во внутренних механизмах зеннопостера (скорее всего используется сеттер с ограничением установки null значения), но вылетает она позже(на миллисекунды), чем могла бы вылетить при ручной генерации ошибки. Для обычного пользователя это не сыграет никакой роли, так что можно смело использовать и return null;
Вы читали мое сообщение? Разработчики программы не рекомендуют использовать return null. Вы лучше них знаете как это будет работать в программе?
 

doc

Client
Регистрация
30.03.2012
Сообщения
7 409
Благодарностей
3 578
Баллы
113
Вы читали мое сообщение? Разработчики программы не рекомендуют использовать return null. Вы лучше них знаете как это будет работать в программе?
Вы как бы разговариваете с высококлассным специалистом в области программирования)
 
  • Спасибо
Реакции: Sanekk

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 061
Благодарностей
868
Баллы
113
Вы читали мое сообщение? Разработчики программы не рекомендуют использовать return null. Вы лучше них знаете как это будет работать в программе?
Как бы итак понятно примерно как это все реализовывается. Это же не unsafe код, который может серьезные ошибки выдавать. Все остальное я уже написал выше про string и null.
P.S. в c# участок кода с ошибкой либо обрабатывается блоком catch, либо не обрабатывается и вешает ошибку. Третьего не дано (хотя конечно в Task ошибки съедаются).
Примерно так бы выглядит подобный код в консольном приложении (можно ещё доп проверки понаставить на тип возвращаемого значения или использовать стандартную логику через метод, возвращающий string, но все это малину не испортит в правильно продуманном коде):
Код:
using System;

namespace MyPorgram
{
    public class Program
    {
        static void Main()
        {
            Cubicki cub = new Cubicki();

            try
            {
                cub.Project_perem1 = cub.Method1().ToString();
                Console.WriteLine(cub.Project_perem1);
                Console.Read();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.Read();
            }         
        }
    }

    sealed class Cubicki
    {
        private string project_perem1;

        public string Project_perem1
        {
            get
            {
                return project_perem1;
            }

            set
            {
                if (value != null)
                    project_perem1 = value;
                else throw new FormatException();
            }
        }

        public dynamic Method1()
        {
            //Тело метода
            return 22;
            //Конец тела метода
        }
    }
}
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)