分享
 
 
 

不同语言支持的关键字之比较

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

不同语言中的关键字的比较

本主题列出用一个语言关键字即可概述的一般性编程任务。

目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro声明变量

Private、Public、Friend、Protected、Static1、Shared、Dim

public, private, protected static, final, volatile, transient

声明符(概念,不是关键字)

声明符(关键字包括用户定义的类型和内置类型)

var

[隐式声明];或

PUBLIC、LOCAL、PRIVATE

声明已命名的常量

Const

final

const

const readonly

const NEW

#DEFINE

创建新对象

New

new

new

new

new

n/a

CreateObject()

n/a

CoCreateInstance()(用于 COM 对象)

new ActiveXObject()

CREATEOBJECT; NEWOBJECT

将对象赋值给对象变量

=

=

=

=

=

=;或 STORE

函数/方法不返回值

Sub2

void

void

void

void

Void(仅用于 COM 服务器)

重载函数或方法(Visual Basic:重载过程或方法)

Overloads NEW

(达到此目的时不需要任何语言关键字)

(达到此目的时不需要任何语言关键字)

(达到此目的时不需要任何语言关键字)

(达到此目的时不需要任何语言关键字)

(达到此目的时不需要任何语言关键字)

引用当前对象

Me3

this

this

this

this

This; Thisform

对当前对象的虚拟方法进行非虚拟调用

MyClass

n/a

MyClass:Func1(),其中 MyClass 是包含成员函数 Func1 的 C++ 类。

n/a

n/a

n/a

从字符串中检索字符

GetChar 函数 NEW

""

*(p + 10) 或 p[10],其中 p 为 char*

[]

str[10],此处的 str 是一个字符串,charAt,substring,substr4

SUBSTR( )

声明复合数据类型(Visual Basic:结构)

Structure <members> End Structure

class, interface

class, struct, union __interface

struct, class, interface

class, interface NEW

n/a

初始化对象(构造函数)

Sub New()5

构造函数(概念,不是关键字)

构造函数(概念,不是关键字)

构造函数或系统默认类型构造函数

构造函数(概念,不是关键字)6

Init 事件

直接终止对象

n/a

n/a

~ClassName

n/a

n/a

n/a

紧接在垃圾回收回收对象之前系统所调用的方法7

Finalize NEW (在 Visual Basic 6.0 中为 Class_Terminate)

finally

析构函数

析构函数

n/a

Destroy 事件

在声明变量处对其进行初始化

Dim x As Long = 5 Dim c As New Car(FuelTypeEnum.Gas)

int x = 5; // 或用构造函数 C c(10)

进行初始化;

int x=5;

// 初始化为值: int x = 123;

// 或使用默认构造函数:

int x = new int();

var x = 5 var y : car = new car()

n/a

获取函数的地址

AddressOf(对于类成员,此运算符以委托实例的形式返回对函数的引用)

delegate、multicast、/** @delgate */

__delegate

delegate

使用不带括号的函数名称

n/a

回调

n/a

将一个函数的地址传递给另外一个回调调用器的函数。有关示例,请参见使用回调函数。

CALLBACK(标准类型);

callback(IDL 属性)

n/a

n/a

n/a

声明对象可以被异步修改

n/a

volatile

volatile

volatile

n/a

n/a

强制显式声明变量

Option Explicit

无法使用。所有变量在使用前必须先声明。

无法使用。所有变量在使用前必须先声明。

无法使用。(所有变量必须先声明才能使用)

快速模式(默认情况下打开)

_VFP.LanguageOptions NEW

测试不引用对象的对象变量

obj = Nothing

pObj == null

pobj == NULL

obj == null

obj == undefined obj == null

EMPTY();ISNULL()

不引用对象的对象变量的值

Nothing

null

n/a

null

null undefined

n/a

测试数据库空表达式

IsDbNull

受 System.Data.SqlTypes 命名空间中的各种数据类型的支持

n/a

n/a

x == null

ISNULL( )

测试 Variant 变量是否已被初始化

n/a

n/a

n/a

n/a

x == undefined

EMPTY( )

定义默认属性

Default NEW

""

n/a

通过使用索引器

n/a

n/a

面向对象的编程目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro引用基类

MyBase NEW

super

__super

base

super NEW

BaseClass 属性;ParentClass 属性;DODEFAULT()

声明接口

Interface NEW

interface

__interface

interface

interface NEW

DEFINE CLASS

指定要实现的接口

Implements(语句)

implements(类声明上的子句)

(仅从接口派生) class C1 : public I1

class C1 : I1

implements NEW

IMPLEMENTS NEW

声明类

Class NEW <实现>

class

class

class

class NEW

DEFINE CLASS Myclass AS <基类>

指定一个类只能被继承。不能创建该类的实例。

MustInherit NEW

abstract

__abstract8(仅用在 C++ 的托管扩展中)

abstract

abstract NEW

n/a

指定一个类不能被继承。

NotInheritable NEW

final

__sealed(仅用在 C++ 的托管扩展中)

sealed

final NEW

n/a

声明一个枚举类型

Enum <members> End Enum

n/a

enum

enum

enum NEW

n/a

声明一个类常数

Const

static final(应用于字段声明)

const

const(应用于字段声明)

const NEW

#DEFINE

从基类派生一个类

Inherits C2 NEW

class C1 extends C2

Class C1 : public Base(达到此目的不需要任何语言关键字)

class C1 : C2

class c1 extends c2 NEW

DEFINE CLASS MyClass AS ParentClass

重写方法

Overrides NEW

(达到此目的时不需要任何语言关键字)

(达到此目的时不需要任何语言关键字)

override

(达到此目的时不需要任何语言关键字)

(达到此目的时不需要任何语言关键字)

声明一个必须在派生类中实现的方法

MustOverride NEW

abstract

将 = 0 置于声明结尾(纯虚拟方法)

abstract

abstract NEW

(达到此目的时不需要任何语言关键字)

声明一个不能重写的方法

NotOverridable NEW (默认情况下方法是不能重写的。)

final

__sealed(仅用在 C++ 的托管扩展中)

sealed

final NEW

n/a

声明一个虚拟方法、属性 (Visual Basic) 或属性访问器(C#、C++)

Overridable

(默认情况下,方法为虚拟)

virtual

virtual

(默认情况下,方法为虚拟)

n/a

在派生类中隐藏基类成员

Shadowing

n/a

n/a

n/a

new Modifier

n/a

声明一个对类方法的类型安全的引用

Delegate NEW

delegate、multicast、/** @delgate */

__delegate(仅用在 C++ 的托管扩展中)

delegate

使用不带括号的函数名称

n/a

指定变量可以包含一个要处理其事件的对象

WithEvents

n/a

n/a

(编写代码 - 没有特定的关键字)

(编写代码 - 没有特定的关键字)

EVENTHANDLER( ) NEW

指定要为其调用事件过程的事件

Handles NEW (事件过程仍然可以通过命名模式与一个 WithEvents 变量相关联。)

n/a

n/a

n/a

n/a

n/a

一次性评定对象表达式的值以访问其多个成员

With objExpr <.member> <.member> End With

n/a

n/a

n/a

with9

WITH ... ENDWITH

异常处理目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro结构化异常处理

Try NEW <attempt>

Catch

<handle errors>

Finally

<always execute>

End Try

try, catch, finally, throw

__try, __except, __finally

try, catch, finally,

throw

try, catch, finally, throw

ONERROR( )、COMRETURNERROR( )、ERROR();MESSAGE()、AERROR()

C++ 异常处理

n/a

n/a

try, catch, throw

n/a

n/a

n/a

决策结构目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro决策结构(选择)

Select Case ..., Case, Case Else, End Select

switch、case、break、default

switch, case, default, goto,

break

switch, case, default, goto, break

switch, case,

break

CASE

决策结构 (if ... then)

If ...Then, ElseIf ...Then, Else, End If

if、else

if, else

if, else

if, else

IF ...ENDIF

循环结构(有条件的)

While, Do [While, Until] ..., Loop [While, Until]

do、while、continue

do, while, continue

do, while, continue

do, while,

break, continue

DO, WHILE(子句)

循环结构(迭代)

For ..., [Exit For,] Next For Each ..., [Exit For,] Next

for, break

for

for, foreach

for (x=0;x<10;x++){...} for (prop in obj) { print (obj[prop]);}

FOR(子句),FOR ... ENDFOR, Continue, Next

数组目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro声明一个数组

Dim a() As Long

int[] x = new int[5];

int x[5];

int[] x = new int[5];

var x : int[], var arr = Array()

DIMENSION、DECLARE

初始化一个数组

Dim a() As Long = {3, 4, 5}

int[] x = {1,2,3,4,5};

int x[5]= {1,2,3,4,5};

int[] x = new int[5] {1, 2, 3, 4, 5};

var x : int[] = [1, 2, 3, 4, 5], var arr = new Array(1, 2, 3, 4, 5)

DIMENSION、DECLARE

重新分配数组

Redim

n/a

n/a

n/a

arr.length=newSize(仅用于 JScript 数组)10

DIMENSION、DECLARE

类范围目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro在项目或程序集外可见

Public

public

public

public

public NEW

PUBLIC

在程序集 (C#/Visual Basic) 外或包(Visual J#、JScript)内不可见

Friend

(省略范围关键字将指定“包范围”)

private

internal

internal NEW

n/a

仅在项目内可见(对于嵌套的类,在包含类内可见)

Private

private

private

private

private NEW

HIDDEN

成员范围目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro在类和项目 (Visual J#/JScript/C++/Visual Basic) 或模块 (Visual Basic) 外可访问

Public

public

public

public

public NEW

PUBLIC

在类外可访问,但在项目内(C#、Visual Basic、C++)或包(Visual J#、JScript)内不可访问

Friend

(省略范围关键字将指定“包范围”)

public private:

internal

internal NEW

n/a

仅在类 (Visual J#/JScript/C++/Visual Basic) 或模块 (Visual Basic) 内可访问

Private

private

private

private

private NEW

HIDDEN

仅能被当前类和派生类访问

Protected NEW

protected

protected

protected

protected NEW

PROTECTED

指定一个函数或另一个类可以访问声明类的私有成员

n/a

n/a

friend(在 C++ 的托管扩展中不允许)

n/a

n/a

n/a

在程序集内受保护,对其他程序集来说是私有的

n/a

n/a

protected private:

(仅用于 C++ 的托管扩展)

n/a

n/a

n/a

杂项生存期目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro保留过程的局部变量

Static11

static

static

n/a

n/a

PRIVATE

由一个类的所有实例共享

Shared NEW

static

static

static

static NEW

n/a

杂项目的Visual BasicVisual J#C++C# NEW JScriptVisual FoxPro注释代码

' Rem

// /**

*/

/*

*/

//、/* */ 用于多行注释

//、/* */ 用于多行注释 /// 用于 XML 注释

//、/* */ 用于多行注释

*; &&

区分大小写?

调用 Windows API

Declare <API>

使用 J/Direct 或平台调用

n/a

使用平台调用

n/a

DECLARE - DLL

声明并引发一个事件

Event, RaiseEvent

使用 java.awt.Event 类或 /** @event */

n/a

event

n/a

n/a

线程基元

SyncLock

synchronized

lock

n/a

n/a

转到

Goto

n/a

goto

goto

n/a

n/a

1. Static 可由其本身使用以声明变量的唯一一种情况(例如,Static x As Long)是在过程中。

2. 在 Visual Basic 中,使用 Sub 关键字声明的过程不能返回值。如果一个过程需要返回值,则必须使用 Function 关键字声明它。

3. 在编译时不解析 Me,因此可以将它用作属性或方法的返回值。

4. 仍然支持 substr 函数,但它已不再是访问字符串中的字符的首选方法。从字符串中的特定位置访问某个字符最有效方法是使用括号。例如,若要访问字符串 str 中的第十个字符,请使用 str[10]。

5. 在 Visual Basic 中,从 .NET Framework System.Object 派生的类的构造函数始终命名为 New。

6. JScript 中不允许对构造函数进行重载。

7. 通常,此方法中的代码释放不能由垃圾回收器自动释放的系统资源。

8. 在 C++ 中,一个抽象类至少包含一个纯虚拟成员。

9. 请注意,没有 Visual Basic 中使用的那种前导句号。这个特点容易造成混淆,原因是变量可能会被误认为属性,反之亦然。还应注意 with 语句会产生效率低下的代码。

10. 不重新分配数组,也不会使其“增长”。JScript 数组(声明为 Array 类型)总是稀疏的动态数组。本机数组(声明为 System.Array 或 type[])不是动态数组。

11. 在 Visual Basic 中,非共享类方法的静态局部变量是按每个类实例存储的,而不是像在其他语言中那样共享一个副本。如果使用 Static 声明一个变量,当变量失去并重新获得作用域时,该变量的值仍会保持。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有