Разница между десятичной и десятичной
Если кто-то может объяснить мне разницу между десятичным и десятичным в С#, это было бы здорово.
В более общем виде, какова разница между строчными строками типа decimal, int, string и upper case Decimal, Int32, String.
Единственная разница в том, что классы верхнего регистра также обертывают функции (например, Decimal.Divide())?
Ответы
Ответ 1
Они одинаковы. Тип decimal является псевдонимом для System.Decimal.
Итак, в основном десятичное значение - это то же самое, что и Decimal. Это зависит от предпочтений пользователей, которые нужно использовать, но большинство предпочитает использовать int и string, поскольку их легче набирать и более знакомы среди программистов на С++.
Ответ 2
Поскольку С# является языком .NET, все типы должны отображаться в .NET Framework Type.
Чтобы ответить на ваш первый вопрос, десятичным является псевдоним типа System.Decimal.NET Framework. Они могут использоваться взаимозаменяемо.
Чтобы ответить на ваш второй вопрос, как десятичные, так и десятичные должны расширять те же функции, в том числе как из созданной переменной, так и из "Структуры" самого типа значения.
decimal FirstDec = 12;
Decimal SecondDec = 13;
decimal ThirdDec = decimal.Ceiling(FirstDec, SecondDec);
Decimal FourthDec = Decimal.Floor(ThirdDec);
bool isEqual = FirstDec.Equals(SecondDec) && FourthDec.Equals(ThirdDec);
Следующая страница MSDN для встроенных типов покажет вам, к какому System.ValueType
соответствует каждый алиас. А для Decimal
и Decimal
в частности вы можете ссылаться на эту страницу MSDN для десятичного.
Ответ 3
встроенные типы С# - это не все структуры *. Они являются псевдонимами для предопределенных типов в пространстве имен System. Они буквально одинаковы во всех отношениях кроме форматирования. Типы псевдонимов строчные и форматированные как ключевые слова (синий). Типы системы PascalCased и отформатированы как типы (светло-голубой).
* object
и string
являются классами
Ответ 4
decimal, int, string - всего лишь короткая нотация, чтобы сделать вещи проще/красивее для вас. Структура действительно не знает, что такое "десятичная", но она знает System.Decimal, поэтому при компиляции кода десятичный код просто превращается в System.Decimal. Попробуйте взглянуть на какой-то код, в котором все типы полностью квалифицированы, а затем попытайтесь найти какой-то код, в котором используются псевдонимы, я думаю, что большинство программистов предпочтут более компактные псевдонимы и воспримут его как более легкое для чтения. Я также думаю, что это может быть возврат к C/С++, чтобы упростить переход.