using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
<ImplicitUsings>disable</ImplicitUsings>
, то ошибка появится.открыл онлайн компилятор, действительно ошибка
Это должно быть многостраничное приложение с навигацией.
Использование MVVM (фреймворки также приветствуются).
На главной странице отображаются N лучших валют по популярности на каком-либо рынке
(или топ-10 валют, возвращенных API).
Страница с возможностью просмотра подробной информации о валюте:
цена, объем, изменение цены, на каких рынках можно купить и по какой цене (т.
возможность зайти на страницу валюты на рынке плюс).
Возможность поиска валюты по названию или коду.
public sealed class UniqueStringGenerator
{
private const long MAX = 3486784401;
private readonly Random _random;
private readonly HashSet<long> _history;
public UniqueStringGenerator(int seed)
{
_random = new Random(seed);
_history = new HashSet<long>();
}
public UniqueStringGenerator()
{
_random = new Random();
_history = new HashSet<long>();
}
public string Next() => Format(NextNumber());
public void Reset()
{
_history.TrimExcess();
_history.Clear();
}
private long NextNumber()
{
if (_history.Count >= int.MaxValue)
{
throw new InvalidOperationException("Variants exceeded. Please reset");
}
var next = _random.NextInt64(0, MAX);
while (_history.Contains(next))
{
next = _random.NextInt64(0, MAX);
}
_history.Add(next);
return next;
}
private static string Format(long number) => string.Create<long>(10, number,
static (span, number) =>
{
// Алгоритм по-лучше придумать не смог.
// Проходимся по каждому биту числа, понемногу сужая выбор между числами в словаре.
const string DICTIONARY = "123456789";
for (var i = 0; i < span.Length; i++)
{
var range = 0..DICTIONARY.Length;
while (!range.Start.Equals(range.End.Value))
{
var length = range.End.Value - range.Start.Value;
var step = length / 2;
if (step == 0)
{
break;
}
if ((number & 1) == 0)
{
range = range.Start..(range.End.Value - step);
}
else
{
range = (range.Start.Value + step)..range.End;
}
number >>= 1;
}
span[i] = DICTIONARY[range.Start];
}
});
}
var text = "123 321";
var statistics = new int[10];
var arrStr = text.Split(' '); // И не надо ничего предполагать. Под индексом 0 лежит 123
Console.WriteLine(arrStr[0][0]); // выдаст 1
// Ошибка из-за того что Convert.ToInt32(arrStr[0][0]) == 49 - это код символа '1'
// statistics[Convert.ToInt32(arrStr[0][0])] = 1; // ошибка переполнение массива
// Гарантируем, что arrStr[0][0] - цифра и парсим её.
var digit = arrStr[0][0];
var idx = digit is >= '0' and <= '9'
? digit - '0'
: throw new InvalidOperationException("Not a digit");
statistics[idx] = 1; // Нет ошибки
многопоточное добавление данных в словарь
хеллоуворд видится как какой-то буддистский коан.
Console.WriteLine("Hello world!");
Знаю, что .php файлы можно запустить без компиляции, закинув какую-то папку с файлами на диск с
Каким образом я могу запускать .cs файлы без компиляции/ide?