Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
using System.IO;
static void Main(string[] args)
{
File.AppendAllText(@"C:\Log.txt", "Program started");
}
if(x >= 37 && x <= 75)
public static bool In(this int x, int a, int b)
{
return x >= a && x <= b;
}
// и используете его так:
if(x.In(37, 75))
{
// todo
}
уж больно много проблем и переделок им пришлось сделать за последние 8 лет с .NET
Первые версии фреймворка (с 1 по 2) вкупе со встроенными библиотеками, например, Windows Forms, сильно различались и даже в некоторых местах были несовместимы друг с другом
Идея мультиплатформенности и открытости NET, на которые повелись многие разработчики, также провалилась из-за сложностей в реализации и технологиях.
Все планы Майкрософт по использованию «аналога WPF» и отказ от «WinAPI» в современных Windows провалились. И взамен повсеместного внедрения вместе с Windows Vista технологию кое-как удалось допилить лишь к 2010 году. Ни о каком внедрении в ближайших версиях Windows речи уже давно не ведется.
В ASP и вебе тоже не все гладко — отказ от развития веб-форм и переход на совершенно другую технологию MVC, остановка развитии Entity Framework и т.п.
(manager as Manager).GetBonus()
manager as Manager
(manager is Manager) ? ((Manager) manager) : null
((manager is Manager) ? ((Manager) manager) : null).GetBonus()
File.WriteAllText("MyString" + Envinronment.NewLine + File.ReadAlltext());
В Delphi есть возможность реализовать методы, имеющие уровень видимости, не выходящий за пределы метода, в котором они реализованы
Вопрос: зачем мне трахать мозг компилируемыми делфями, когда у меня есть высокоуровневый интерпретируемый язык, который с лихвой может решить 100% задач? Уж что-то, а корпоративные приложения, равно как и всякие простенькие UI, обработчики данных и проч, мне и в страшном сне не привидется писать на делфи или даже на С++
Это конечно проблемы Windows и только Windows, а не питона, ну да ладно.
Немного поизвращавшись проблема решается
stringList := TStringList.Create();
try
...
finally
stringList.Free();
end;
Попробуйте реализовать то же самое на C#. Если у Вас получится сделать это также элегантно, то я буду только рад, поскольку давно уже ищу такой способ.
Незаконченная история перехода с Delphi на C#