Разница между десятичной и десятичной - PullRequest
22 голосов
/ 27 мая 2009

Если бы кто-то мог объяснить мне разницу между десятичным и десятичным в C #, это было бы здорово.

В более общем смысле, в чем разница между структурами нижнего регистра, такими как decimal, int, string и классами верхнего регистра Decimal, Int32, String.

Единственное отличие состоит в том, что классы верхнего регистра также переносят функции (например, Decimal.Divide ())?

Ответы [ 5 ]

44 голосов
/ 27 мая 2009

Они одинаковы. Тип decimal является псевдонимом для System.Decimal.

Так что в основном десятичная дробь - это то же самое, что и десятичная. Это зависит от предпочтений пользователя, какой из них использовать, но большинство предпочитают использовать int и string, поскольку их легче набирать и они более знакомы программистам C ++.

3 голосов
/ 26 ноября 2013

Поскольку C # является языком .NET, все типы должны соответствовать типу .NET Framework.

Чтобы ответить на ваш первый вопрос, десятичным является псевдоним типа 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 для десятичного числа .

1 голос
/ 27 мая 2009

встроенные типы C # - это не все структуры *. Это псевдонимы для предопределенных типов в пространстве имен System. Они буквально одинаковы во всех отношениях , кроме форматирования . Типы псевдонимов строчные и отформатированы как ключевые слова (темно-синий). Типы систем PascalCased и отформатированы как типы (светло-голубой).


*object и string являются классами

0 голосов
/ 19 мая 2018

Если бы C # не был чувствителен к регистру, некоторые люди написали бы приложения полностью заглавными буквами, как в Cobol и VB. Это сделало бы невозможным для разработчиков читать код и поддерживать его. Чувствительность к регистру - это попытка дизайнера помочь сделать язык более удобным.

0 голосов
/ 27 мая 2009

decimal, int, string - это всего лишь краткие обозначения, чтобы вам было проще / красивее. Фреймворк на самом деле не знает, что такое «десятичный», но он знает System.Decimal, поэтому, когда вы компилируете свой код, десятичный просто превращается в System.Decimal. Попробуйте взглянуть на некоторый код, в котором все типы полностью квалифицированы, затем попробуйте взглянуть на некоторый код, в котором используются псевдонимы. Я думаю, что большинство программистов предпочтут более компактные псевдонимы и воспримут его как более удобное для чтения. Я также думаю, что это может быть возврат к C / C ++, чтобы облегчить переход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...