pascalabcnet/PABCNetHelp/Common/PABCNETvsDelphi.html

110 lines
4.9 KiB
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../default.css">
</head>
<body>
<H1>Îòëè÷èÿ ÿçûêà PascalABC.NET îò Delphi</H1>
<h3>Äîáàâëåíî</h3>
<ol>
<li>Îïåðàöèè <code>+=</code> <code>-=</code> äëÿ ñîáûòèé .NET è äëÿ ïðîöåäóðíûõ
ïåðåìåííûõ.</li>
<li>Îïåðàöèè <code>+=</code> <code>-=</code> <code>*=</code> äëÿ öåëûõ è&nbsp;
<code>+=</code> <code>-=</code> <code>*=</code> <code>/=</code>
äëÿ âåùåñòâåííûõ.</li>
<li>Îïåðàöèÿ <code>+=</code> äëÿ ñòðîê.</li>
<li>Ïîäïðîãðàììû ñ ïåðåìåííûì ÷èñëîì ïàðàìåòðîâ.</li>
<li>Îïåðàöèÿ <b> <code>new</code></b> äëÿ âûçîâà êîíñòðóêòîðà (<code>ident := new type_name(params);</code>).</li>
<li>Îïåðàöèÿ <b> <code>new</code></b> äëÿ ñîçäàíèÿ äèíàìè÷åñêîãî ìàññèâà. </li>
<li>Îïåðàöèÿ <code><b>typeof</b></code> .</li>
<li>Èñïîëüçîâàíèå <code><b>uses</b></code> äëÿ
ïîäêëþ÷åíèÿ ïðîñòðàíñòâ èìåí .NET (<span lang="ru">ðåàëèçîâàíî â </span>
Delphi Prism).</li>
<li>Âèä äîñòóïà <code><b>internal</b></code> (íàðÿäó ñ <code><b>public</b></code>,
<code><b>private</b></code>, <code><b>protected</b></code>).</li>
<li>Èíèöèàëèçàöèÿ ïåðåìåííûõ: <code><b>var</b> a: integer :=
1</code>;</li>
<li>Èíèöèàëèçàöèÿ ïåðåìåííûõ: <code><b>var</b> a :=
1</code>;</li>
<li>Îáúÿâëåíèå ëîêàëüíûõ ïåðåìåííûõ â áëîêå.</li>
<li>Îáúÿâëåíèå ïàðàìåòðà öèêëà â çàãîëîâêå öèêëà: <code><b>for</b> <b>var</b>
i := 1 <b>to</b> 10 <b>do</b></code>, <code><b>foreach</b>
<strong>var</strong> x <b>in</b> a <b>do</b></code>.</li>
<li>Îïåðàòîð <code><b>lock</b></code>, îáåñïå÷èâàþùèé ñèíõðîíèçàöèþ ïîòîêîâ.</li>
<li>Ìåòîäû â çàïèñÿõ.</li>
<li>Èíèöèàëèçàòîðû ïîëåé â êëàññàõ è çàïèñÿõ.</li>
<li>Îáîáùåííûå êëàññû (generics).</li>
<li>Ðåàëèçîâàíû òèïèçèðîâàííûå ôàéëû (â îòëè÷èå îò
Delphi Prism, ãäå îíè óáðàíû).</li>
<li>Óïðîùåííûé ñèíòàêñèñ ìîäóëåé.</li>
<li>Îïèñàíèå ìåòîäîâ âíóòðè èíòåðôåéñà êëàññà èëè çàïèñè.</li>
<li>Ðåàëèçàöèÿ çàïèñüþ èíòåðôåéñà.</li>
<li><span lang="ru">Ìåòîäû ðàñøèðåíèÿ.</span></li>
<li>Ëÿìáäà-âûðàæåíèÿ.</li>
</ol>
<h3>Èçìåíåíî</h3>
<ol>
<li>Òîëüêî ñîêðàùåííîå âû÷èñëåíèå ëîãè÷åñêèõ âûðàæåíèé.</li>
<li>Äðóãîé ñèíòàêñèñ <code><b>foreach</b></code>.</li>
<li>Èíòåðôåéñû <code><b>interface</b></code> â ñòèëå .NET.</li>
<li>Äðóãîé ñèíòàêñèñ ïåðåãðóçêè îïåðàöèé.</li>
<li>Ñòàòè÷åñêèå ìåòîäû êëàññîâ âìåñòî êëàññîâûõ ìåòîäîâ. Îòñóòñòâèå òèïà
<code>TClass</code>.</li>
<li>Äåñòðóêòîðû îñòàâëåíû ëèøü äëÿ ñîâìåñòèìîñòè è íå âûïîëíÿþò íèêàêèõ
äåéñòâèé.</li>
<li>Òèï <code>object</code> -
ñèíîíèì <code>System.Object</code>.</li>
<li>Òèï <code>exception</code> -
ñèíîíèì <code>System.Exception</code>.</li>
<li>Èíäåêñàöèÿ <code>string</code> ñ 1, äèðåêòèâà ïåðåêëþ÷åíèÿ íà èíäåêñàöèþ ñ 0.</li>
<li>Ïðîöåäóðà <code>write</code>
âûâîäèò ëþáûå òèïû.</li>
<li>Ñòðóêòóðíàÿ ýêâèâàëåíòíîñòü òèïîâ äëÿ ïðîöåäóðíûõ ïåðåìåííûõ, äèíàìè÷åñêèõ ìàññèâîâ,
òèïèçèðîâàííûõ óêàçàòåëåé è
ìíîæåñòâ (â Delphi Object
Pascal - èìåííàÿ ýêâèâàëåíòíîñòü òèïîâ çà èñêëþ÷åíèåì îòêðûòûõ
ìàññèâîâ).</li>
<li>Ìíîæåñòâà íà áàçå ïðîèçâîëüíûõ òèïîâ (<code><b>set</b> <b>of</b>
string</code>).</li>
<li>Çàïðåò èñïîëüçîâàíèÿ óêàçàòåëåé íà óïðàâëÿåìóþ ïàìÿòü.</li>
<li>Ïðîöåäóðíûå ïåðåìåííûå (äåëåãàòû) âìåñòî <code><b>procedure of</b>
object</code>.</li>
<li>Ñ áåñòèïîâûìè ôàéëàìè <b><code>file</code></b>
ìîæíî ðàáîòàòü ñ ïîìîùüþ ïðîöåäóð <code>read</code>,
<code>write</code>.</li>
<li>Ìàññèâû ìàññèâîâ îòëè÷àþòñÿ ïî òèïó îò äâóìåðíûõ ìàññèâîâ (â ÷àñòíîñòè,
çàïèñè <code>a[i][j]</code> è <code>a[i,j]</code> íåýêâèâàëåíòíû).</li>
<li>Ïåðåãðóçêà âûïîëíÿåòñÿ áåç êëþ÷åâîãî ñëîâà <b> <code>overload</code></b>.</li>
<li>Âñå êîíñòðóêòîðû èìåþò èìÿ <code>Create</code>.</li>
<li>Àâòîìàòè÷åñêîå óïðàâëåíèå ïàìÿòüþ ñ ïîìîùüþ ñáîðùèêà ìóñîðà (çà
èñêëþ÷åíèåì óêàçàòåëåé íà íåóïðàâëÿåìóþ ïàìÿòü).</li>
</ol>
<h3>Îòñóòñòâóåò</h3>
<ol>
<li>Êëþ÷åâûå ñëîâà è äèðåêòèâû <code><b>packed threadvar inline asm exports library unsafe resourcestring dispinterface in out absolute dynamic
local platform requires abstract export message resident assembler safecall
automated far near stdcall cdecl published stored contains implements
varargs default deprecated package register dispid pascal writeonly</b></code>
è ñâÿçàííûå ñ íèìè âîçìîæíîñòè.</li>
<li>Ïðèâåäåíèå òèïîâ äëÿ ïåðåìåííûõ: <code>Char(b)</code>
<code>:=</code> <code>'d'</code>.</li>
<li>Âîçìîæíîñòü ïðèñâîèòü àäðåñ ïîäïðîãðàììû óêàçàòåëþ <code>pointer</code>.</li>
<li>Çàïèñè ñ âàðèàíòàìè.</li>
<li>Ñòðîêè <code>PChar</code>.</li>
<li>Âîçìîæíîñòü èñïîëüçîâàòü îïåðàöèþ <code>@</code> äëÿ ïðîöåäóðíûõ ïåðåìåííûõ.</li>
<li>Âàðèàíòíûå òèïû.</li>
<li>Áåñòèïîâûå ïàðàìåòðû (<code><b>var</b> a; <b>
const</b> b</code>).</li>
<li>Îòêðûòûå ìàññèâû (íå ïóòàòü ñ äèíàìè÷åñêèìè!).</li>
<li>Ìåòîäû, ñâÿçàííûå ñ ñîîáùåíèÿìè (<code><b>message</b></code>).</li>
<li>Êëàññîâûå ñâîéñòâà.</li>
<li>Âëîæåííûå îïðåäåëåíèÿ êëàññîâ.</li>
<li>Êîíñòàíòû-ïîëÿ êëàññîâ.</li>
</ol>
</body>
</html>