1.1.0-rc2
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.08.16 20:22
Оценка:
https://www.nuget.org/packages/CodeJam/1.1.0-rc2

What's new in 1.1.0-rc2
-----------------------
* Contains and ContainsSuffix methods in SuffixTree
* StartingWith method in SuffixTree

... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re: 1.1.0-rc2
От: Vasiliy2  
Дата: 22.09.16 10:13
Оценка: 34 (1)
Здравствуйте, AndrewVK, Вы писали:

AVK>https://www.nuget.org/packages/CodeJam/1.1.0-rc2


Возможно не сюда вопрос.
В Main->Strings->StringExtensions.Infix есть метод


        [Pure]
        public static double? ToDouble(
            [CanBeNull] this string str,
            NumberStyles numberStyle = NumberStyles.Float,
            [CanBeNull] IFormatProvider provider = null)
        {
            double result;
            return double.TryParse(str, numberStyle, provider, out result) ? (int?)result : null;
        })result : null;
        }



что за (int?) в возврате результата?
Re[2]: 1.1.0-rc2
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.09.16 12:59
Оценка:
Здравствуйте, Vasiliy2, Вы писали:

V>что за (int?) в возврате результата?


Наверное огрехи копипаста. Поправил.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[3]: 1.1.0-rc2
От: Sinix  
Дата: 23.09.16 12:21
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Наверное огрехи копипаста. Поправил.


Покрыл тестами, по результатам мысль: может, лучше вообще их убрать? Уж слишком неочевидные результаты оно выдаёт для extension-метода.
Re[4]: 1.1.0-rc2
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.09.16 13:22
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Уж слишком неочевидные результаты оно выдаёт для extension-метода.


Например?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[5]: 1.1.0-rc2
От: Sinix  
Дата: 23.09.16 14:03
Оценка:
Здравствуйте, AndrewVK, Вы писали:

S>>Уж слишком неочевидные результаты оно выдаёт для extension-метода.


AVK>Например?

Так в тестах есть. Не, оно как бы логично, но

        [TestCase(" \r\n\t\t \v -1.0 \r\n", ExpectedResult = -1.0)]
        [TestCase("-Infinity", ExpectedResult = double.NegativeInfinity)]
        [TestCase("-infinity", ExpectedResult = null)]
        [TestCase("-1.0", ExpectedResult = -1.0)]
        [TestCase("- 1.0 ", ExpectedResult = null)]
        public double? ToDouble(string str) => str.ToDouble(provider: CultureInfo.InvariantCulture);

заставляет вспомнить js WAT

+ есть ещё одна эпичная мелочь, которая меня всегда убивала. В числах с плавающей точкой по умолчанию используется
 NumberStyles.Float| NumberStyles.AllowThousands


что для строк в русской или немецкой культурах приводит к
double.Parse("1,0", CultureInfo.InvariantCulture); // 10. Приятной отладки.


У нас используется просто Float, что с одной стороны упрощает жизнь, с другой добавляет путаницы.
Может, упростить до AllowLeadingSign | AllowDecimalPoint | AllowExponent, без пробелов? Ну и до AllowLeadingSign для int.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.