Конституция Армении: Статья 18.1
Конституция Армении (Статья 18.1) закрепляет «исключительную миссию Армянской Апостольской Святой Церкви как национальной церкви в духовной жизни армянского народа, в деле развития его национальной культуры и сохранения его национальной самобытности»:
Oxygene (язык программирования)

Oxygene (язык программирования)

Материал из Википедии — свободной энциклопедии

Oxygene («Кислород») (ранее известный как Chrome(«Хром»)) — язык программирования, разработанный компанией RemObjects Software для стандарта Common Language Infrastructure. Язык Oxygene был создан на основе языка Object Pascal.

Первоначально привязанный к Delphi.NET, после приобретения прав компанией Embarcadero, Oxygene не обладает полной обратной совместимостью. Так, например, в его состав не входят библиотеки классов, совместимые с библиотекой VCL, критикуемой за недостаточно эффективную реализацию, что практически исключило перенос на платформу .NET унаследованных приложений, созданных с помощью Delphi или Kylix и использовавших библиотеку классов VCL.

Компания «RemObjects Software» предлагает полную интеграцию с Visual Studio 2003/2005/2008, а с июня 2010 года - интеграцию с MonoDevelop и Visual Studio 2010. Отдельной IDE для Oxygene на данный момент не существует.

Особенности

Примеры кода

Hello World

namespace HelloWorld;  interface type  HelloClass = class  public    class method Main;   end;  implementation class method HelloClass.Main;begin  System.Console.WriteLine('Hello World!');end;  end.


Обобщённый контейнер

namespace GenericContainer; interface type  TestApp = class  public    class method Main;  end;    Person = class  public    property FirstName: String;    property LastName: String;        end;        implementationuses   System.Collections.Generic;class method TestApp.Main;begin  var myList := new List<Person>; //вывод типов  myList.Add(new Person(FirstName := 'Иван', LastName := 'Петров'));    myList.Add(new Person(FirstName := 'Маша', LastName := 'Петрова'));  myList.Add(new Person(FirstName := 'Сергей', LastName := 'Петров'));    Console.WriteLine(myList[1].FirstName);  //Проверка не требуется  Console.ReadLine;        end;end.


Обобщённый класс

namespace GenericMethodTest;interfacetypeGenericMethodTest = static classpublic  class method Main;private  class method Swap<T>(var left, right : T);  class method DoSwap<T>(left, right : T);end;implementationclass method GenericMethodTest.DoSwap<T>(left, right : T);begin  var a := left;  var b := right;  Console.WriteLine('Type: {0}', typeof(T));  Console.WriteLine('-> a = {0}, b = {1}', a , b);  Swap<T>(var a, var b);  Console.WriteLine('-> a = {0}, b = {1}', a , b);end;class method GenericMethodTest.Main;begin  var a := 23;// вывод типа  var b := 15;  DoSwap<Integer>(a, b); // никаких приведений базового типа к дочернему (downcasting) для Object в этом классе.  var aa := 'abc';// вывод типа  var bb := 'def';  DoSwap<String>(aa, bb); // никаких приведений базового типа к дочернему (downcasting) для Object в этом классе.  DoSwap(1.1, 1.2); // вывод типа для обобщённых параметров  Console.ReadLine();end;class method GenericMethodTest.Swap<T>(var left, right : T);begin  var temp := left;  left:= right;  right := temp;end;end.

Программа должна вывести:

Type: System.Int32 -> a = 23, b = 15 -> a = 15, b = 23 Type: System.String -> a = abc, b = def -> a = def, b = abc Type: System.Double -> a = 1,1, b = 1,2 -> a = 1,2, b = 1,1 ---


Улучшенная обработка операторов выбора

case aClassID.ToUpper of   'XYZ': result := TMyXYZClass;   'ABC': result := TMyOtherClass;else raise new Exception('Неправильный ID класса');end;
case aClass type of   TMyXYZClass: TMyXYZClass(aClass).DoSomething;   TMyOtherClass: TMyOtherClass(aClass).DoSomethingElse;else raise new Exception('Неправильная ссылка на класс');end;

См. также

Дополнительные источники

Примечания

Oxygene
Изображение логотипа
Класс языкаязык программирования и объектно-ориентированный
Появился в2005[1]
РазработчикRemObjects Software
Выпуск6.0 (28 мая2013)
Испытал влияниеObject Pascal, C#
ЛицензияCommercial
Сайтremobjects.com/oxygene