Re[4]: Ну спасибо за развёрнутый ответ..
От: varenikAA  
Дата: 16.10.19 06:00
Оценка:
Здравствуйте, Danchik, Вы писали:

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


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


A>>>или нужно получить новое значение value-типа, через конструктор этого типа:

A>>>
DateTime dateTime = new DateTime(...);


И все-таки, интересно, почему в некоторых языках используется new?
Ведь он усложняет анализ кода.
На память в делфи Class.Create(), в nim — newPerson(), в немерле Class().
C, C#, и, внезапно, F# — new!
т.е. чтобы пользоваться в F# функциональщиной, нужно делать фабричную функцию:
let date () = new DateTime() 
let d = date()


Чисто визуально даже, приятней было бы:
let d = DateTime()


В ди например, это имеет особый смысл, там выражение new(uint size,...)
определяет где будет создан объект(по умолчанию в куче), если же new для локальной переменной функции класса, то на стэке.
можно явно указать new(размер выделяемой памяти), естественно, можно расширять поведение инициализации, явно реализуя метод класса вида: new(uint size,int a, string b).
Но в C# по-моему, нужно было разрешить вызывать конструкторы как статические методы. Это логичнее.
☭ ✊ В мире нет ничего, кроме движущейся материи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.