C# скудно
От: varenikAA  
Дата: 09.09.20 02:02
Оценка: +1 -4 :)
Никому не надоело это
if(!(X is Y y))
{
 return;
}// + ко всему if без else возможная логическа ошибка(человеческий фактор)
?
Ну дайте уже
unless(X is Y y)
{
 return;
}
// и
when(ok) { action();}
?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: C# скудно
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.09.20 04:41
Оценка: +1
Здравствуйте, varenikAA, Вы писали:

AA>Никому не надоело это

AA>
AA>if(!(X is Y y))
AA>{
AA> return;
AA>}// + ко всему if без else возможная логическа ошибка(человеческий фактор)
AA>
?


Непонятно, о чём идёт речь. Вы хотите привести X к Y, и при неудаче сразу выйти? Почему вас не устраивает
if(X is Y y)
{
   //handle the y
}
else return; // неясно, нужен ли return - может, там сразу окончание метода?

AA>Ну дайте уже
AA>
AA>unless(X is Y y)
AA>{
AA> return;
AA>}
И как это будет работать? Область видимости y будет ограничена return statement? А зачем?


AA>// и
AA>when(ok) { action();}
AA>
?


А это вообще что? Чем вас не устраивает
 if(ok) action();
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: C# скудно
От: Privalov  
Дата: 09.09.20 06:02
Оценка: +1
Здравствуйте, Sinclair, Вы писали:


S>Непонятно, о чём идёт речь. Вы хотите привести X к Y, и при неудаче сразу выйти? Почему вас не устраивает

S>
S>if(X is Y y)
S>{
S>   //handle the y
S>}
S>else return; // неясно, нужен ли return - может, там сразу окончание метода?
S>


Все-таки короткий if читать удобней, чем длинный. Мне больше нравится, когда
if(!ok)
{
    return
}
//продолжение

чем
if (ok)
{
// 100500 строк
}

Но это не повод добавлять в язык странные конструкции.
Re[3]: C# скудно
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.09.20 06:18
Оценка: +2 :)
Здравствуйте, Privalov, Вы писали:
P>Но это не повод добавлять в язык странные конструкции.
Отож. Неясно, чем такая конструкция лучше старинного
var y = X as Y;
if(y == null)
  return;
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: C# скудно
От: Privalov  
Дата: 09.09.20 06:26
Оценка: +3 :))) :))
Здравствуйте, Sinclair, Вы писали:

S>Отож. Неясно, чем такая конструкция лучше старинного

  Скрытый текст
S>
S>var y = X as Y;
S>if(y == null)
S>  return; 
S>

Для меня — ничем. А вот ностальгирующим о PL/1 может показаться, что в C# слов мало.
Re: C# скудно
От: _FRED_ Черногория
Дата: 09.09.20 11:14
Оценка: 66 (3) +4
Здравствуйте, varenikAA, Вы писали:

AA>Никому не надоело это

AA>if(!(X is Y y))
AA>{
AA> return;
AA>}// + ко всему if без else возможная логическа ошибка(человеческий фактор)

AA> ?

Держите:
public class C
{
  public void M(object o) {
    if(o is not C c) {
      return;
    } //if

    c.M("Aaa");
  }
}
Help will always be given at Hogwarts to those who ask for it.
Re[2]: C# скудно
От: Privalov  
Дата: 09.09.20 12:29
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Держите:



Если посмотреть в окно справа, там в точности код, который показал
Автор: Sinclair
Дата: 09.09.20
коллега Sinclair.
public class C
{
    public void M(object o)
    {
        C c = o as C;
        if (c != null)
        {
            c.M("Aaa");
        }
    }
}
Re[4]: C# скудно
От: _NN_ www.nemerleweb.com
Дата: 09.09.20 19:03
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Privalov, Вы писали:

P>>Но это не повод добавлять в язык странные конструкции.
S>Отож. Неясно, чем такая конструкция лучше старинного
S>
S>var y = X as Y;
S>if(y == null)
S>  return; 
S>


Тем что можно писать
public int F() => 
  A is B b && b.C is C ? C.D ?? 1;
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: C# скудно
От: rudzuk  
Дата: 09.09.20 20:54
Оценка: 4 (1) +6 -1 :))) :))) :)))
Здравствуйте, _NN_, Вы писали:

NN> S>Отож. Неясно, чем такая конструкция лучше старинного

NN> S>
NN> S>var y = X as Y;
NN> S>if(y == null)
NN> S>  return;
NN> S>


NN> Тем что можно писать

NN>
NN> public int F() =>
NN>   A is B b && b.C is C ? C.D ?? 1;
NN>


Горите в аду!
avalon/3.0.0
Re[6]: C# скудно
От: _NN_ www.nemerleweb.com
Дата: 09.09.20 21:17
Оценка: +3
Здравствуйте, rudzuk, Вы писали:

R>Здравствуйте, _NN_, Вы писали:


NN>> S>Отож. Неясно, чем такая конструкция лучше старинного

NN>> S>
NN>> S>var y = X as Y;
NN>> S>if(y == null)
NN>> S>  return;
NN>> S>


NN>> Тем что можно писать

NN>>
NN>> public int F() =>
NN>>   A is B b && b.C is C ? C.D ?? 1;
NN>>


R>Горите в аду!


Неужели код старого стиля более читаемый ?
public int F()
{
  if (A is B)
  {
    B b = (B)a;
    if (b.C is C)
    {
      C c = (C)b.C;
      if (c.D != null)
      {
         return C.D;
      }
    }
  }

  return 1;
}
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: C# скудно
От: kov_serg Россия  
Дата: 09.09.20 21:42
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Никому не надоело это

AA>if(!(X is Y y))

dynamic уже не радует?
void action(Y y) {}
void action(X x) {}
...
action((dynamic)x);
Re[5]: C# скудно
От: rameel https://github.com/rsdn/CodeJam
Дата: 09.09.20 21:43
Оценка: +3
Здравствуйте, _NN_, Вы писали:

_NN>Тем что можно писать

_NN>
_NN>public int F() => 
_NN>  A is B b && b.C is C ? C.D ?? 1;
_NN>


Тогда уж так
public int F() => 
    A is B {C: C c} ? c.D : 1
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: C# скудно
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.09.20 05:17
Оценка: +1
Здравствуйте, _NN_, Вы писали:
_NN>Тем что можно писать
_NN>
_NN>public int F() => 
_NN>  A is B b && b.C is C ? C.D ?? 1;
_NN>

Это как раз понятно. Непонятно, зачем городушки с unless.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: C# скудно
От: Буравчик Россия  
Дата: 10.09.20 05:37
Оценка: -1
Здравствуйте, varenikAA, Вы писали:

AA>Никому не надоело это


В C# лямбды же есть, напиши unless() и when(), да и пользуйся
Best regards, Буравчик
Re[7]: C# скудно
От: AlexRK  
Дата: 10.09.20 06:34
Оценка: +3 -4 :)
Здравствуйте, _NN_, Вы писали:

_NN>Неужели код старого стиля более читаемый ?

_NN>
_NN>public int F()
_NN>{
_NN>  if (A is B)
_NN>  {
_NN>    B b = (B)a;
_NN>    if (b.C is C)
_NN>    {
_NN>      C c = (C)b.C;
_NN>      if (c.D != null)
_NN>      {
_NN>         return C.D;
_NN>      }
_NN>    }
_NN>  }

_NN>  return 1;
_NN>}
_NN>


Да, гораздо более.
Re: C# скудно
От: Kolesiki  
Дата: 10.09.20 13:46
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>if(!())

AA>Ну дайте уже
AA>unless()

Мне пофиг приведения типов, но вот от unless я бы не отказался! Оно больше привлекает внимания как "условие, которое не выполнилось". Или ifnot — тоже ничё.
В принципе, код надо читать внимательно и при тщательном разборе проблем с "!" нет. Но мы же не всегда корпим над кодом с лупой! Поверхностный взгляд может очень легко пропустить "!" или того хуже — "!а || b" может воспринять как !(a || b).
Мандалаев, которые тупо переименовали Жаба -> C# уже ждут в аду (и за # тоже!), но добавить удобное ключевое слово — это ведь ничего не стоило! Тем более, такое есть в Перл, к примеру. Но разве какое-то unless всколыхнёт умы "кастомеров"! Нужно что-то грандиозное!! Например, в 5-ый раз переписанный "доступ к данным" или 7-ой вариант ГУЁВ.
Это же так приятно — пилить громадные библиотеки вместо того, чтобы делать нормальный язык.
Re[2]: C# скудно
От: Ночной Смотрящий Россия  
Дата: 10.09.20 18:48
Оценка: +1 :)
Здравствуйте, Kolesiki, Вы писали:

K>Мандалаев, которые тупо переименовали Жаба -> C# уже ждут в аду (и за # тоже!), но добавить удобное ключевое слово — это ведь ничего не стоило! Тем более, такое есть в Перл, к примеру. Но разве какое-то unless всколыхнёт умы "кастомеров"! Нужно что-то грандиозное!! Например, в 5-ый раз переписанный "доступ к данным" или 7-ой вариант ГУЁВ.

K>Это же так приятно — пилить громадные библиотеки вместо того, чтобы делать нормальный язык.

Ты правда думаешь что в какой то момент Language Design Team собирается и думает — то ли ему заняться шарпом, то ли написать еще одну громадную библиотеку?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: C# скудно
От: alexzzzz  
Дата: 30.01.22 02:02
Оценка: 6 (1) +1 :)
Здравствуйте, varenikAA, Вы писали:

if (condition == false)
{
    return;
}


С первой версии языка можно было. Никаких лишних малозаметных значков и лишних скобочек. Unless не нужен.
Re[8]: C# скудно
От: mDmitriy Россия  
Дата: 30.01.22 05:55
Оценка:
Здравствуйте, AlexRK, Вы писали:
_NN>>Неужели код старого стиля более читаемый ?
_NN>>
_NN>>public int F()
_NN>>{
_NN>>  if (A is B)
_NN>>  {
_NN>>    B b = (B)a;
_NN>>    if (b.C is C)
_NN>>    {
_NN>>      C c = (C)b.C;
_NN>>      if (c.D != null)
_NN>>      {
_NN>>         return C.D;
_NN>>      }
_NN>>    }
_NN>>  }

_NN>>  return 1;
_NN>>}
_NN>>


ARK>Да, гораздо более.

любителям мышиного скроллинга посвящается...
Re: C# скудно
От: vlp  
Дата: 30.01.22 06:08
Оценка: 3 (1)
AA>Ну дайте уже
AA>[cs]
AA>unless(X is Y y)
AA>{
AA> return;
AA>}

мелковатый запрос какой-то. Надо сразу вот такое:

return unless X is Y y;

в перле postfix conditional statements есть уже лет 30
Отредактировано 30.01.2022 6:08 vlp . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.