DELPHI与C#语法比较
1、我做了三年的.NET,也是三个月前因为项目需要转的delphi
整个过渡差不多要一周到两周。
正常情况两周后就能熟悉delphi。
delphi可以调整开发环境的,你把他的属性和解决方案窗口调成和你用VS一样的用起来就习惯多了。
语法的话pascal和C#都是能拉控件的,做起来都是一个模式,非常类似。
即便是自己写组件,个人感觉delphi写起来更简单些。
如果是做数据库软件的话,delphi用起来就相当方便,和数据库连接代码几乎不用写的。
如果是用delphi做工控或网络编程也差不多。
delphi其实也就是搞了些库把API封装进去,本质上一样。
总之:我感觉因为主要是编程思路,其他都一样。正常两周能搞定。
比如:using相当于uses
int i;相当于 i:int;
public void a();相当于public procedure a();
共同点:都是拉完控件在事件里写代码,都是面向对象,源码文件的结构很像(c#是.cs文件,delphi是.pas文件)。
-----------------------------------------
2、delphi 包含3种文件,工程文件(.dpr),单元文件(.pas),窗体文件(.dfm)
工程文件包含了应用程序的入口;单元文件是你要写代码的地方,比如unit部分是指明了文件的名字,uses子句指示编译器添加在列出的个单元中找到的代码等等,窗体文件是指脚本化的文本文件,其中定义了一些资源,使得窗体和数据模块能够存储对象的可视化外观。
-----------------------------------
3、VS的开发环境接近完美了,C#+devexpress控件基本就可以和delphi的控件媲美了,C#的优势:
1.开发环境好,IDE的人性化做得相当出色,自然就提高了效率
2.语法简洁,本人不喜欢delphi的语法,C#/JAVA/C/C++/JS等都是C的语法,简洁,不过区分大小写一直不爽
3.重装系统方便,如果你的DELPHI使用了大量第三方控件,系统重装时,基本就是一个噩梦
4.共享方便,比如多个项目,可以很方便共享代码(DLL或链接文件),delphi也可以,不过麻烦很多
5.微软的大力支持,目前前途一片光明(相对delphi)
-------------------------
在Windows平台上说起实用来,当然还是Delphi更实用咯!
1.Delphi具有快速开发环境,其效率是VC的n倍(不要拿C#来说事,C#的开发领导者是Delphi的主创之一,这个层面上,C# = Delphi)
2.代码质量:由于Delphi使用的是Object
Pascal语言所以代码严谨优美,可读性强,利于团队作业!C的代码太自由,个人色彩浓烈,适合SOLO...对公司来讲效率不高
3.编译器效率:Delphi的编译器效率目前还没有敌手,编译一个项目瞬间完成,其好处是没有等待编译的空闲时间去泡咖啡了,有益Coder的身心健康,同时也为项目的快速开发奠定了基础
4.在Windows平台上,Delphi除了驱动程序不能开发外(事实上你愿意的话也可以,只是你要冒微软的版权风险),几乎可以完成任何项目,尤其以数据库程序见长。当然,Delphi在Linux等平台上的表现还不尽如人意,如果你是在Linux下的话,建议你还是用C吧!
-----------------------------
C#之父 Anders Hejlsberg
Anders Hejlsberg,丹麦人,曾在丹麦科技大学学习工程学。
Anders Hejlsberg第一次登上软件界历史舞台是在80年代早期,因为他为MS-DOS和CP/M设计了一个Pascal编译器。当时,还是一个小公司的Borland很快雇用了他,并买下了他的编译器,改称Turbo Pascal。在Borland,Hejlsberg继续开发Turbo Pascal,并最终带领他的小组设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi语言。
1996年,Anders Hejlsberg在Delphi3发布前离开Borland去了MS。
在此之前,MS曾多次企图挖走Anders,但都没有成功。据信Anders去MS(主要)不是钱的问题,虽然MS的开价也相当有吸引力: 130万美元年薪外加股票期权和分红,总计超过300万美元。更主要的原因是Anders和Delphi开发组的其他成员在修改编译器的问题上发生了争执;还有,据Borland内部人讲,Anders认为自己不再是“不可缺少的人”。
Anders在Delphi3中几乎没有做什么工作,Chuck Jazdzewski扮演了一个更重要的角色。(--Anders Ohlsson) Anders在Borland时把所有精力都放在了Pascal产品上,也需要新的挑战,这时Bill Gates的亲自邀请,许诺给与挑战的机会,Anders加入了Microsoft就势在必行。
Microsoft 用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了Hejlsberg 之后,Borland 曾提出通过不正当手段吸收新成员的控告。Borland 还曾声称 — 提供了很少的细节来支持指控 -Hejlsberg 正在开发“Delphi for Java”。这场诉讼虽然最终以Borland 的胜利而收场;但Anders 已经在为Microsoft工作了。
DELPHI与C#语法比较的更多相关文章
- Delphi的goto语法
今天第一次主要到Delphi也有goto语法,特别是其奇怪的label声明.估计主要是用来跳出多重循环,而且还真有人使用这种方式.记个笔记: procedure TForm1.btn3Click(Se ...
- delphi的一些语法知识 以及参数传递问题,按引用方式传递参数,按值方式传递参数
//delphi中exit,abort,break,continue 的区别 exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,whi ...
- Delphi(ObjectPascal)基础语法
一个程序分为两个部分:1.程序首部:program 来标识这是一个pascal程序 后面的是可执行文件的名称程序名称2.程序体:说明部分:数据先定义后使用执行部分:以begin开始,以end结束 ...
- delphi中Case语法的使用方法
Case 语句If...Then…Else 语句适合选项较少的情况,如果有很多选项的话利用If 语句就比较麻烦,在这种情况下,Case 语句就容易多了.Case 语句的语法如下: case <表 ...
- Delphi 7以来的Delphi 2009测试版新语法特性
我晕,Delphi 7 以后增加了这么多有用的语法,我都不知道.真是越学越觉得自己浅薄,自己所作的Delphi项目所用的知识还不够Delphi知识储备体系的十分之一,更别说Delphi还在继续发展. ...
- delphi Syntax check、 build、 run、 compile的区别
delphi Syntax check. build. run. compile的区别 Build是从新编译所有和生成exe有关的文件,无论.pas文件是否修改过,它都会重新生成新的.dcu,并从新 ...
- fastscript调用delphi方法和DELPHI调用FASTSCRIPT方法
fastscript调用Delphi过程: 1. 先创建事件处理方法:TfsCallMethodEvent 2. 然后再用调用TfsScript.AddMethod方法,第一个参数为Delphi方法 ...
- Delphi 发展历史
自然人的软件著作权,保护期为自然人终生及其died后50年:软件是合作开发的,截止于最后died的自然人died后第50年的12月31日.法人或者其他组织的软件著作权,保护期为软件首次发表之后50年, ...
- Delphi各个版本和发展历史(转)
Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD).它的前身,即是DOS时代盛行一时的“BorlandTurbo ...
随机推荐
- UIScrollView控件实现图片缩放功能
转发自:http://www.cnblogs.com/wendingding/p/3754268.html 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScr ...
- cocos2d-x 第三篇 基本概念介绍
场景(scene): 也有人叫做屏幕或舞台,是一个独立的程序流,一个程序可以有很多场景但当前运行的场景就只有一个.比如游戏中可以有介绍场景,菜单场景,第一关场景,过场1场景,第二关场景,胜利场景等.一 ...
- IOS - Passbook
1. 什么是Passbook Passbook是苹果公司于北京时间2012年6月12日上午,在全球开发者大会(WWDC)上宣布了iOS 6系统将提供操作一个全新的应用——Passbook 这是一款可以 ...
- FTL标签
<#if blockObject ??> <#else> </if>判断对象是否存在 <#if componentid ?? &&compon ...
- iOS获取状态栏和导航栏尺寸(宽度和高度)
iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件.下面介绍一下如何获取这些信息: // 状态栏(statusbar) CGRect rectStatus = [[UIA ...
- Xcode开发中的6个小技巧
Xcode是iPhone和iPad开发者用来编码或者开发iOS app的IDE.Xcode有很多小巧但很有用的功能,很多时候我们可能没有注意到它们,也或者我们没有在合适的水平使用这些功能简化我们的iO ...
- NYOJ题目1080年龄排序
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtMAAAJVCAIAAACTf+6jAAAgAElEQVR4nO3dO1Lj3NbG8W8Szj0QYg ...
- MyEclipse生成WAR包并在Tomcat下部署发布(转发)
从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择J2 ...
- hdu 4911Inversion
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4911 题意:给定一个序列和k,求在k次交换之后序列的逆序数,只能相邻两个数交换且只有左边的数大于右边时才能 ...
- UVA 10405最长公共子序列
裸最长公共子序列,直接贴代码 #include<cstdio> #include<iostream> #include<algorithm> #include< ...