Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Да , название состоит из одной буквы и цифр. А>>0x100000
S>Ну не скажите. Откуда знать что здесь именно (2^10)^2? Не очевидно. А вдруг один нолик лишний случайно добавишь?
Специально для таких зануд как вы придумали вот такой синтаксис:
1 << 10 // будет 1024
1 << 20 // будет 1048576
С единственным ноликом справитесь?
S>Вы предлагаете эту "константу" писать в каждой строчке кода?
Вы явно делаете что-то не так, если у вас "в каждой строчке кода" нужно указывать это число.
Здравствуйте, Аноним, Вы писали:
А>Есть ли встроенные константы в .нет?
Нет.
Re[3]: Есть ли константы колво байт в мегабайте
От:
Аноним
Дата:
11.06.14 03:44
Оценка:
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Да , название состоит из одной буквы и цифр. А>>0x100000
S>Ну не скажите. Откуда знать что здесь именно (2^10)^2? Не очевидно.
Но то что есть или нет константа с другим именем вы ведь тоже не знаете, какая тогда разница ? У этой константы есть преимущество ее можно логически вычислить.
S>
А вдруг один нолик лишний случайно добавишь?
А вдруг вместо j напишешь i.
S>Вы предлагаете эту "константу" писать в каждой строчке кода?
Нет не в каждой, только там где требуется.
Здравствуйте, Shmj, Вы писали: А>>0x100000 S>Ну не скажите. Откуда знать что здесь именно (2^10)^2? Не очевидно. А вдруг один нолик лишний случайно добавишь?
Ну ок, ждём c#6 и добавляем digit separators, const int Mb = 0x10_00_00.
Или используем enterprise-style, бессмысленный и беспощадный:
Как делать не надо
// <copyright file="Constants.cs" company="Acme.Inc">
// Copyright (c) 2007, 2008, 2009, 2010, All Right Reserved, http://acme.inc/
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// </copyright>
// <author>Ouch Singh</author>
// <email>ouchsigh@acme.inc</email>
// <date>2009-02-29</date>
// <summary>May contain nuts</summary>
// ...
// meta-note: keywords in caps conforms to RFC 2119
/// <summary>
/// MB (MByte) as defined by JEDEC Standard No. 21-C, "Terms and Definitions" (c)2009
/// Equals to <c>10e5 base 16</c> or <c>1048576</c> bytes exactly.
/// </summary>
/// <remarks>
/// The constant SHOULD NOT be mixed-up with SI megabyte constant (<c>10e6 base 10</c>). Consider using <seealso cref="SiConstants.Megabyte"/> instead.
/// Note to IEC purists. Please DO NOT rename this to Mebibyte. We've created <see cref="IecConstants.Mebibyte"/> for you. Please stop.
/// </remarks>
/// <code> var x = Megabyte; </code>const long Megabyte = 1024 * 1024; // Long used to prevent overflows on calculations. NB:ulong will suit better here, but it fails CTS compliance.
// ...
[Test]
static void TestJedecMegabyte()
{
var size = GetSize("1mb.txt");
Assert.That(JedecConstants.Megabyte).IsEqual.To(size);
var size2 = GetSize("1kb.txt");
Assert.That(JedecConstants.Megabyte).IsGreater.To(size2);
var size3 = GetSize("1gb.txt");
Assert.That(JedecConstants.Megabyte).IsLess.Than(size3);
var size4 = 1048576;
Assert.That(JedecConstants.Megabyte).IsEqual.To(size4);
var size5 = 0x100000;
Assert.That(JedecConstants.Megabyte).IsEqual.To(size5);
var size6 = IecConstants.Mebibyte;
Assert.That(JedecConstants.Megabyte).IsEqual.To(size6);
var size7 = SiConstants.Megabyte;
Assert.That(JedecConstants.Megabyte).IsNotEqual.To(size7);
}
Здравствуйте, Shmj, Вы писали:
S>Простите, вы тесты с реального проекта скопировали ?
Конечно нет, этож энтерпрайз (и, увы, не корабль).
Если разработчик не связан подпиской о неразглашении подписки о неразглашении, то это не контора, а лавочка какая-то. Так что увы, настоящих тестов, которые не каждый мегабайт пройдёт, я вам показать не могу
P.S. Вообще-то я пометил предыдущий пост как [irony][/irony], но понадеялся, что и без этого будет понятно.
P.P.S. А кроме тестов вас ничего не смутило?
Здравствуйте, VladD2, Вы писали:
S>>Ну ок, ждём c#6 и добавляем digit separators, const int Mb = 0x10_00_00.
VD>Ждите. А, мы уже 7 лет используем Nemerle где это есть.