资源描述
Pascal、VB、C#、Java四种语法对照表
ASP.NET支持的几种语言:c#.net,,(非内置支持),由于在.net框架下,所有的语言均使用同一个类库,因此功能上是基本上一模一样,只语法上各不相同。
.net与java为两大阵营,为了比较,在此列出一个简单的语法对照表,看看你到底喜欢那个?
类别
语法
语法(语法不区分大小写)
c#.net 语法
java
语法
不区分大小写
不区分大小写
区分大小写
区分大小写
定义变量
Var
x: Integer;
s: string;
s1, s2: string;
o: TObject;
obj: TObject; obj := TObject.Create;
Public property name: String;
Dim x As Integer
Dim s As String
Dim s1, s2 As String
Dim o 'Implicitly Object
Dim obj As New Object()
Public name As String
int x;
String s;
String s1, s2;
Object o;
Object obj = new Object();
public String name;
int x;
String s;
String s1, s2;
Object o;
Object obj = new Object();
public String name;
输出内容
Response.write(‘foo’);
Response.Write("foo")
Response.Write("foo");
Response.Write("foo");
注释
// This is a comment
/* This is a
multi-line
comment */
' This is a comment
' This is a
' multi-line
' comment
// This is a comment
/* This is a
multi-line
comment */
// This is a comment
/* This is a
multi-line
comment */
读取数据集合数组
var
s, value: String
begin
s := Request.QueryString[‘Name’];
Value := Request.Cookies(‘Key’).Value;
end;
Dim s as String = Request.QueryString("Name")
Dim value As String = Request.Cookies("Key")
String s=Request.QueryString["Name"];
String value=Request.Cookies["key"];
String s = request. getParameter("Name");
String value;
Cookie ck = null;
Cookie args[] = Request.getCookies();
for(int i = 0; i<args.length; i++){
ck = args[i];
if(ck.getName().equals("key "))
value = ck.getValue();
}
字符串操作
var
s1, s2: String;
begin
s2 := ‘hello’;
s2 := s2 + ‘world’;
s1 := s2 + ‘!!!’;
End;
Dim s1, s2 As String
s2 = "hello"
s2 &= " world"
s1 = s2 & " !!!"
String s1;
String s2 = "hello";
s2 += " world";
s1 = s2 + " !!!";
String s1;
String s2 = "hello";
s2 += " world";
s1 = s2 + " !!!";
类别
语法
语法(语法不区分大小写)
c#.net 语法
java
初始化变量
var
s: String;
I: Integer;
A: array of double = {3.00, 4.00, 5.00}
Dim s As String = "Hello World"
Dim i As Integer = 1
Dim a() As Double = { 3.00, 4.00, 5.00 }
String s = "Hello World";
int i = 1
double[] a = { 3.00, 4.00, 5.00 };
String s = "Hello World";
int i = 1
double[] a = new double[]{ 3.00, 4.00, 5.00 };
定义简单数据集
Public Record Name: String;
Function GetName: String; Begin
...;
Result := …;
End;
Procedure SetName(Value: String); Begin
… := Value;
End;
End
Public Property Name As String
Get
...
Return ...;
End Get
Set
... = Value;
End Set
End Property
public String name
{
get{
...
return ...;
}
set{
... = value;
}
}
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
数组
var
a[0..2]: string
a[0..2,0..2]: String
begin
a[0] := ‘1’;
a[1] := ‘2’;
a[2] := ‘3’;
a[0,0] := ‘1’;
a[1,0] := ‘2’;
a[2,0] := ‘3’;
End;
Dim a(3) As String
a(0) = "1"
a(1) = "2"
a(2) = "3"
Dim a(3,3) As String
a(0,0) = "1"
a(1,0) = "2"
a(2,0) = "3"
String[] a = new String[3];
a[0] = "1";
a[1] = "2";
a[2] = "3”;
String[][] a = new String[3][3];
a[0][0] = "1";
a[1][0] = "2";
a[2][0] = "3";
String[] a = new String[3];
a[0] = "1";
a[1] = "2";
a[2] = "3";
String[][] a = new String[3][3];
a[0][0] = "1";
a[1][0] = "2";
a[2][0] = "3";
对象操作
var
bj: MyObject;
iObj: IMyObject;
begin
obj := Session(‘Some Value’);
iObj = Obj as IMyObject;
end;
Dim bj As MyObject = Session("Some Value")
Dim iObj As IMyObject = CType(obj, IMyObject)
MyObject obj = (MyObject)Session["Some Value"];
IMyObject iObj = obj;
MyObject obj = (MyObject)Session.getItem ("Some Value");
IMyObject iObj = obj;
类型转换
var
i: Integer;
s: String;
d: Double;
begin
i := 3;
s = i.ToString();
d := Double.Parse(s);
end;
Dim i As Integer = 3
Dim s As String = i.ToString()
Dim d As Double = Double.Parse(s):
int i = 3;
String s = i.ToString();
double d = Double.Parse(s);
int i = 3;
String s = Integer.valueof(i).toString();
double d = Double.valueof(s);
类别
语法
语法(语法不区分大小写)
c#.net 语法
java
If 结构
If Not (Request.QueryString = Null) then
begin
...
End;
If Not (Request.QueryString = Null)
...
End If
if (Request.QueryString != null)
{
...
}
if (Request.QueryString != null)
{
...
}
Case 结构
Case FirstName of
‘John’:
...
‘Paul’:
…
‘Ringo’:
…
End
Select (FirstName)
case "John" :
...
case "Paul" :
...
case "Ringo" :
...
End Select
switch (FirstName){
case "John" :
...
break;
case "Paul" :
...
break;
case "Ringo" :
...
break;
}
int flag = 1;
switch (flag){
case 1:
...
break;
case 2:
...
break;
}
For 循环
Var
I: Integer;
Begin
For I := 0 to 2 do
A[i] := ‘test’;
End;
Dim I As Integer
For I = 0 To 2
a(I) = "test"
Next
for (int i=0; i<3; i++)
a(i) = "test";
for (int i=0; i<3; i++)
a[i] = "test";
While 循环
Var
I: Integer;
Begin
I := 0;
While i< 3 do
Begin
Console.WriteLen(i.ToString());
I := I + 1;
End;
End;
Dim I As Integer
I = 0
Do While I < 3
Console.WriteLine(i.ToString());
I = I + 1
Loop
int i = 0;
while (i<3)
{
Console.WriteLine(i.ToString());
i += 1;
}
int i = 0;
while (i<3)
{
System.out.println(i);
i += 1;
}
类别
语法
语法(语法不区分大小写)
c#.net 语法
java
类定义和继承
unit MySpace
interface
uses System;
type
Foo = Class(Bar)
private
x: integer;
public
procedure Create; override; //构造函数
procedure Add(x: Integer);
function GetNum: Integer;
end;
implementation
procedure Foo.Create;
begin
inherited; x := 4;
end;
procedure Foo.Add(x: Integer); begin
Self.x := Self.x + x;
end;
function Foo.GetNum: Integer; begin
Result := x;
end;
end;
Imports System
Namespace MySpace
Public Class Foo : Inherits Bar
Dim x As Integer
Public Sub New() ‘构造函数
MyBase.New()
x = 4
End Sub
Public Sub Add(x As Integer)
Me.x = Me.x + x
End Sub
Public Function GetNum() As Integer
Return x
End Function
End Class
End Namespace
' vbc /out:libraryvb.dll /t:library library.vb
using System;
namespace MySpace
{
public class Foo : Bar
{
int x;
public Foo() {x = 4; } //构造函数
public void Add(int x) { this.x += x; }
public int GetNum() { return x; }
}
}
// csc /out:librarycs.dll /t:library library.cs
import java.lang.*;
package MySpace;
public class Foo extends Bar{
private int x; //私有变量
public Foo() {x = 4; } //构造函数
public void Add(int x) { this.x += x; } //过程
public int getNum() { return x; } //函数
}
事件处理
procedure Button1OnClick(Sender: Object;E: EventArgs);
begin
...
end;
‘ByRef 在Pascal中对象是缺省参数传递方式
Sub Button1_Click(Sender As Object, E As EventArgs)
...
End Sub
‘ByVal 在VB中对象是是缺省参数传递方式
void Button1_Click(Object sender, EventArgs E)
{
...
}
‘ByRef 在C#中对象是是缺省参数传递方式
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event
.MouseEvent evt) {
Button1_Click(evt);
}
});
private void Button1_Click(java.awt. event
.MouseEvent evt) {
}
张弓 2007/4/21 于台中, 2008/4/18补充入java
展开阅读全文