Wednesday, June 04, 2008

C#和Object Pascal


下载了一个C#的速成版,似乎是免费的。

在编写一个基于窗口的程序时,program.cs的内容如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

 

再看看Delphi自己生成的代码:

program shift;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

这两个的风格实在太像了!

也难怪,二者都是快速开发工具的代表,只是最终实现的平台侧重不同。Delphi使用CLX类库可以做Linux下的快速开发,而C#则是致力于.NET的跨平台实现。相对来说,.NET出现得更晚,将来也是主流之选(Delphi也有对应的版本,其实就是跟微软的风了)。

 

其他:

Delphi是把类的声明与实现都写在Unit文件里面,各个Unit之间可以很随意地互相访问。一个Unit中可以有名义上的全局变量。另外代码中已经为类创建了相应对象。

C#秉承C的习惯,把声明与实现分成两个文件,Unit之间的互访必须先声明,只有名义上的全局变量。

尽管如此,在快速开发的时候,二者实在太像了。

No comments: