C#
Зачем в C# нужны типы данных?
Решил после JavaScript'а изучить шарп, на первых шагах столкнулся с такой интересной вещью, как типы данных - есть ли от них какая то определённая польза/смысл? Почему, например, в js такого нету?
♦ Типы данных в JS есть, но типизация динамическая. То есть компилятор сам определяет тип по тому, какие данные присваиваются.
♦ В C# статическая типизация. При объявлении переменных нужно указать ее тип.
Типы нужны чтобы комп знал как именно работать с данной переменной.
Статическая типизация дает лучший контроль кода и уменьшает потенциальное кол-во ошибок.
Компилятор при статической типизации не допустит таких ошибок в рантайме, поскольку не даст скомпилировать и запустить приложение.
К слову, в C# есть возможность и динамической типизации (var). И есть еще отключение контроля типов (dynamic). Но в последнем случае программист должен сам контролировать типы.

♦ В C# статическая типизация. При объявлении переменных нужно указать ее тип.
Типы нужны чтобы комп знал как именно работать с данной переменной.
Статическая типизация дает лучший контроль кода и уменьшает потенциальное кол-во ошибок.
Компилятор при статической типизации не допустит таких ошибок в рантайме, поскольку не даст скомпилировать и запустить приложение.
К слову, в C# есть возможность и динамической типизации (var). И есть еще отключение контроля типов (dynamic). Но в последнем случае программист должен сам контролировать типы.

Типизация бывает динамической и статической. В JS она динамическая, в C# статическая
Про "определённую пользу/смысл" сказать не получится, ибо и у того и у другого есть свои достоинства и недостатки
Про "определённую пользу/смысл" сказать не получится, ибо и у того и у другого есть свои достоинства и недостатки
Динамическая типизация - это не просто возможность не указывать тип переменной \ параметра функции \ поля класса!
Возможность не указывать тип есть во всех нормальных Си-подобных языках включая и чистый Си:
auto x = 1; // тут int
auto b = "abc"; // тут строка const char*
А вот динамическая типизация - это возможность в одну переменную (ну или параметр и т. д.) класть значения разных типов по очереди.
Например так (и этот пример демонстрирует одно из преимуществ дин. тип., хотя и не такое значительное):
var x = "123"; // тип строка
x = parseInt(x); // а теперь number
Возможность не указывать тип есть во всех нормальных Си-подобных языках включая и чистый Си:
auto x = 1; // тут int
auto b = "abc"; // тут строка const char*
А вот динамическая типизация - это возможность в одну переменную (ну или параметр и т. д.) класть значения разных типов по очереди.
Например так (и этот пример демонстрирует одно из преимуществ дин. тип., хотя и не такое значительное):
var x = "123"; // тип строка
x = parseInt(x); // а теперь number
Похожие вопросы
- Почему в .NET нет встроенных типов данных с фиксированной точность?
- Базовые классы C# Нужен код такой большой
- (c#) Нужна помощь в работе со строками. (лучше если будет не само решение, а объяснение, спасибо)
- Проверка корректности ввода данных в C#
- Нужна помощь с задачей C#
- Нужны ли знание алгебры/геометрии для c#.
- Зачем нужно разделение на типы char и string в c# ?
- Стоит ли дальше учить C#?
- Программирование на C Sharp (C#)
- Сегодня начал учить c#, решил сделать калькулятор простой и столкнулся с такой ошибкой при компиляции, хелпуйте.
Ха-ха, тогда динамическая типизация есть в C++ и даже C.
Это не динамическая типизация, а автоопределение типа.
Динамическая, это когда в одну переменную можно класть данные то одного, то другого типа.