C#学习及与delphi的比较(一)
刚开始很不习惯c#的风格,哎,先入为主啊,delphi习惯了,{}代替begin/end太扎眼。
属性方法的宣告和代码在一起,没有像delphi分interface/implementation,感觉太乱,都不知道一个class到底有几个方法。
每个属性和方法前面都要单独写private/protected/public,老天,c#是delphi之父设计的揶,怎么不学delphi写一个就行呢?绝对降低生产率。
c#号称没有全局变量、全局函数了,有人大家赞赏,说可以减少耦合,刚很好奇,看了才明白,老天,都放到class里面去了,那这个class算不算全局的??类似delphi的class method,不需要创建instance就可以调用。
跟c一样,函数调用,即使没有参数,也要加一对括号,烦,有时候不知道某个东西是属性还是方法,VS的code insight选择方法后也不自动加上一对括号,像ToString(),我总是忘掉。
没有了单元的概念,不存在一个cs文件引用另一个cs文件的用法,在project中的文件就可以互相使用里面的class。
assembly中没有如delphi的单元initialization/finalization初始化功能,很不方便,只能通过static property来lazy创建。
form有controls属性,列出第一层控件,与delphi一样;但是没有components属性,不知道如何列出那些不可视元件,但是在form的后代,如form1,form2,单独实现了一个private IContainer components属性,作用与delphi得Components一样。
相关文档:
一个线程的优先级取决于创建线程的进程的优先级(priority class)和线程本身相对的优先级(relative priority)。
1、进程优先级:
不同操作系统 优先级数目不同。Windows2000以上的版本列表如下:
Idle:(标志:IDLE_PRIORITY_CLASS,值为$40);
Below Normal:(标志:BEL ......
★1. 使用QueryString变量
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:
a.aspx的C#代码
private void B ......
在Delphi中的Record类型中,与之C语言对应的即是结构体类型(struct
),也可能是为了符合C语言或C++程序员的习惯,对于它在Delphi中的应用存在的一些问题进行初步的说明。在Delphi中的记录体类型有两种方式定义
Type
RecTest = record (packed
)
ID :integer; ......
unit winntService;
interface
uses
Windows,WinSvc,WinSvcEx;
function InstallService(const strServiceName,strDisplayName,strDescription,strFilename: string):Boolean;
procedure UninstallService(strServiceName:string);
implementation
function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: C ......