C#→ Сходства и различия с Delphi
Янв 7, 2011
После небольшого штудирования книг по C#, были замечены некоторые сходства с языком Delphi. Например, зная что делает тот или иной код в Delphi и найдя аналогию в C#, код начинает восприниматься более легче. Но нужно заметить, что не всегда сходства кода выполняют одни и те же действия.
1. Объявление стандартных переменных:
C#
int myNumber; string myString; bool myBoolean;
Delphi
myNumber: integer; myString: string; myBoolean: Boolean;
Примечание:
Как видите, в основном разница в очередности объявлений. В C# сначала идет тип переменной, затем имя переменной, а в Delphi наоборот. Объявление переменных в C# можно делать в любой части кода, в Delphi же только после директивы var. Также нужно запомнить, что код C# зависит от регистра букв, в отличии от Delphi.
2. Объявление статических массивов:
C#
int[] myNumber = new int[100]; string[] myString = new string[100]; bool[] myBoolean = new bool[100];
Delphi
myNumber: array[0..100] of integer; myString: array[0..100] of string; myBoolean: array[0..100] of boolean;
Примечание:
В C# объявление статических (имеющих заданный и неизменный размер, в данном случае 100 «ячеек») массивов происходит в два этапа. Сначала объявляется переменная массива (int[] myNumber), а затем создается сам массив (new int[100]). Поэтому этот код можно разбить на две строчки. В Delphi мы можем указать не только размерность массива, но и с какого элемента начинать отсчет.
3. Объявление динамических массивов:
C#
List<int> myInteger = new List<int>(); List<string> myString = new List<string>(); List<bool> myBoolean = new List<bool>()
Delphi
myNumber: array of integer; myString: array of string; myBoolean: array of boolean;
Примечание:
В C# нет динамических массивов, но есть коллекции (списки). Для добавления элемента в массив достаточно выполнить myString.Add(«Привет»). Также имеется куча дополнительных методов для работы со списками — сортировка, замена и т.д. В Delphi после объявления динамического массива, нужно задать ему размер — SetLength(100). Функций для работы с массивами в Delphi нет.
4. Создание экземпляра класса:
C#
WebRequest myVariable; myVariable = new WebRequest("http://ya.ru");
Delphi
myVariable: TIdHTTP; myVariable := TIdHTTP.Create("http://ya.ru");
Примечание:
В C# как видно роль Create (Delphi) выполняет директива new, а в остальном методика создания экземпляра у них сходна. Однако, в C# есть небольшое преимущество — объявление переменной и создание экземпляра можно объединить:
WebRequest myVariable = new WebRequest("http://ya.ru");