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");

Добавить комментарий

Ваш адрес email не будет опубликован.