C# bad и good end

GoldenEagle

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

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

return null;
 
  • Спасибо
Реакции: GoldenEagle

shade

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

shade

Client
Регистрация
19.11.2010
Сообщения
580
Благодарностей
346
Баллы
63

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

что так всего много ) не ужели моей строкой не воспользоваться ? )
 

shade

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

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

if (какое сравнение)
{
return null;
}

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

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

throw new Exception("бла бла"); ошибка с оповещением

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

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

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

Для вас нет различий, а при обратке кода программой есть различия.
if (какое сравнение)
{
return null;
}

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

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

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

throw new Exception();

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

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

если просто выйти по красной по ошибке то разве есть разнаца ???
 

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

можно так скумекать

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

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

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
можно так скумекать

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

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

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

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

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

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

VladZen

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

1977_Alex_2016

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

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 1977_Alex_2016 какие-либо сделки.

К сожалению, я не могу объяснить вам как-то по-другому. Это рекомендация разработчиков программы - использовать Exception, надеюсь в с этим согласитесь.
нет не соглашусь то что не доработка
 

amyboose

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

VladZen

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

doc

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

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
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;
            //Конец тела метода
        }
    }
}
 
Последнее редактирование:
  • Спасибо
Реакции: maksimk26

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