var dictionary = new Dictionary<string, string>();
var sb = new StringBuilder();
foreach(var kv in dictionary) { // В принципе, можно оптимизировать, если писать не в StringBuilder, а сразу в стрим, который ассоциируется с файлом.
sb.AppendLine($"{kv.Key}={kv.Value}");
}
var text = sb.ToString();
// Дальше пишем text в файл.
var dictionary = new Dictionary<string,string>();
var lines= File.ReadAllLines("pathToFile"); // читаем построчно
foreach(var line in lines) {
var tokens = line.Split("=");
var key = tokens[0].Trim();
var value = string.Join("", tokens.Skip(1)).Trim();
dictionary[key] = value;
}
// Используем dictionary как хотим
public System.TimeSpan time;
public Text timerText;
void Start()
{
timerText.text = time.ToString("hh:mm:ss"); // 00:00:00
}
void Update()
{
time = time.AddSeconds(Time.deltaTime);
// Не уверен, что это стоит делать каждый кадр, но пусть так
timerText.text = time.ToString("hh:mm:ss");
}
CREATE TABLE commands (
id serial PRIMARY KEY
)
к примеру UPDATE без WHERE, ну мало ли, человеческий фактор
Каким образом можно защититься от подобного рода ошибок?
Увидел на сайте по продажам бу вещей, бесплатный товар разбитый но рабочий планшет, автор просит в замен шиколадку,
либо автор добрый, либо он хочет както обмануть меня на доставке товара
по-идеи, если юзать с судо, то должно браться же с домашней папки рута, а там как раз есть этот ключ..
Говорят, что экземпляр производного класса, наследующийся от абстрактного (класса, интерфейса), принято приводить к базовому типу. Почти всегда.
var instance = new DerivedClass();
instance.Method1(); // Красиво, компактно, никаких проблем.
instance.Method2();
В коде выше, из за приведения к базовому абстрактному типу, мы вынуждены создавать 2 экземпляра класса.
DerivedClass instance= new DerivedClass(); // только 1 экземпляр
Interface1 instance1 = instance; // Но всё равно очень громоздко.
Interface2 instance2 = instance;
Не нужна "лишняя" операция приведения (апкаст).
private Dictionary<string, Item> Inventory = new () {
["Дробовик"] = new () { Damage = 36, Clip = 30, Stock = 60 },
["Автомат"] = new () { Damage = 30, Clip = 30, Stock = 60 },
["Базука"] = new () { Damage = 51, Clip = 1, Stock = 2 }
};
public Item SelectedItem {get; set;}
private void timer1_Tick(object sender, EventArgs e) {
SelectedItem = Inventory[combobox.Text];
}
label1.Text = SelectedItem?.Clip.ToString() ?? "";
Правильно ли я делаю?
Нет ли ошибок?
Как можно защититься от инъекции?
Например, в php экранировали вводимую пользователем форму например htmlspecialchars, надо ли на net core так же делать?
Зачем передавать переменные-параметры в функцию, если можно писать глобальное объявление переменных?
int sum(int a, int b) { // всё отлично, всё понятно
return a + b;
}
int a,b;
// Каким образом мы поймём, что надо перед вызовом sum задать какое-то значение переменным a и b?
// sum и её "параметры" a и b никак не связаны
int sum() {
return a + b;
}
int sum() { // а как в этом случае нам сложить две переменные? Как задать значения a и b??????
int a,b;
return a + b;
}
Что-то постоянно меняет эти ссылки на свои, в итоге на сайте появляются вирусные редиректы. Когда меняю ссылку на реальную ссылку сайта, он работает нормально.