Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/35: Рейтинг темы: голосов - 35, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 23.05.2009
Сообщений: 43
1
.NET 4.x

Суффиксы в переменных

22.11.2010, 17:27. Показов 6493. Ответов 1
Метки нет (Все метки)

Читаю Герберта Шилдта. Упомянул он как-то про про суффик который надо использовать при присвоении летерала, например для decimal - m(M).

use_decimal.cs(10,11): error CS0664: Литерал с типом double не может неявно преобразовываться к типу
'decimal'; используйте суффикс 'M' для создания литерала этого типа
Но тему он как-то не раскрыл толком. Может он это сделает позже по книге, но продолжает использовать суффиксы, а зачем оно нужны в других вариантах, так сказать, я не очень понимаю:

C#
1
2
3
4
5
6
7
8
9
10
11
12
using System;
 
class L_to_D {
    static void Main() {
        long L;
        double D;
        
        L = 100123285L;
        D = L;
        Console.WriteLine("L и D: {0} {1}", L, D);
    }
}
Результат всё равно один и тот же, что с/без L:

D:\_dropbox\My Dropbox\c#\lesson>l_to_d.exe
L и D: 100123285 100123285
Так в чём же тогда фишка? Нашел только вот тут:

Если вас не устраивает тип, определенный в С# по умолчанию, вы можете задать нужный тип литерала явно посредством добавления суффикса. Чтобы указать тип литерала long, добавьте к числу букву l или L (например, число 20 имеет тип int, а 12L - тип long). Для спецификации беззнакового целочисленного литерала добавьте букву u или U (например, число 100 имеет тип int, а 100U - тип uint). Для спецификации длинного беззнакового целого прибавьте к константе суффикс ul или UL (например, литерал 984375UL имеет тип ulong). Чтобы специфицировать литерал типа float, добавьте к константе символ f или F (например, литерал 10.19F имеет тип float). Для спецификации литералов типа decimal добавьте к значению букву m или M (9.95М является литералом, имеющим тип decimal).
Но как/где это использовать? Есть реальный пример зачем 12 использовать как long, а не как int?
1

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2010, 17:27
Ответы с готовыми решениями:

Нужны ли суффиксы в значениях переменных
Сабж. В переменной типа long, к примеру, нужно к значению приписывать L? Просто вроде в обоих...

Префиксы и суффиксы
Всем привет. Помагите найти ошибку в коде. Заданы две строки S и s. Определить, является ли...

Суффиксы ссылок
Здравствуйте, подскажите пожалуйста стоит ли убрать суффикс ссылки ну хорошо это или поло если...

dns-суффиксы
у меня такой вопрос где в linux можно вписать днс суффикс ? для настройки лакальной сити . я только...

1
817 / 708 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
22.11.2010, 18:03 2
Например при задании неявного типа
C#
1
2
3
4
5
6
7
            var intList = new[] {1, 2, 3};
            var floatList = new[] { 1F, 2F, 3F };
            var doubleList = new[] { 1D, 2D, 3D};
 
            Console.WriteLine(intList);
            Console.WriteLine(floatList);
            Console.WriteLine(doubleList);
К примеру:
C#
1
2
3
4
5
6
7
8
        private static void Main()
        {
            foo(new[]{1d,3d,4d});
            Console.ReadKey();
        }
 
        public static void foo(double[] doubles)
        {}
если написать
C#
1
 foo(new[]{1,3,4});
, то выдаст ошибку, так нельзя будет неявно привести тип new[]{1,3,4} к типу double[].
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2010, 18:03

Суффиксы числовых литералов
в учебнике видел вот такую строчку: const float PI = 3.14159F; или вот такую: longvar = 7678L;...

Для чего нужны суффиксы?
Здравствуйте. Начал изучать программирование практически с нуля, если не считать Бейсик из...

Целочисленные литералы и суффиксы, как правильно это функционирует?
Всем доброго времени суток, снова непонимание, и неудача при поиске ответа, HELP! Имею следующий...

Как посмотреть суффиксы CSS-классов модулей в шаблоне?
Скажите пожалуйста, как посмотреть суффиксы CSS-классов модулей в шаблоне? В демо-шаблона они не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.