Palabras clave comparadas en varios lenguajes

En este tema se enumeran tareas de programación frecuentes que se pueden resumir en una palabra clave del lenguaje.Para obtener más información sobre tareas que necesitan ejemplos de código, vea Conceptos de programación comparados en diferentes lenguajes y ejemplos de código.

Objetivo

Visual Basic

C++

C#

F#

Declarar una variable

Dim

Public

Friend

Protected

Private

Shared

Static1

declaradores (concepto, no palabra clave)

declaradores (las palabras clave incluyen tipos definidos por el usuario y tipos integrados)

Enlaces let

Valores

Declarar una constante con nombre

Const

const

const

readonly

Enlaces let

Valores

Crear una instancia nueva de una clase

Nuevo

new

gcnew

new

new

Crear un nuevo objeto

Nuevo

CreateObject para los objetos COM

CoCreateInstance() (para objetos COM)

new 

new

Asignar un objeto a una variable objeto

=

=

=

<-

La función/método no devuelve un valor

Sub2

void

void

Tipo de unidad

Sobrecargar una función o un método (Visual Basic: sobrecargar un procedimiento o un método)

Overloads

No se requiere ninguna palabra clave para esta finalidad

No se requiere ninguna palabra clave para esta finalidad

override

Hacer referencia al objeto actual

Me3

this

this

Use el autoidentificador tal como se describe en Métodos o Miembros

Realizar una llamada no virtual a un método virtual del objeto actual

MyClass

MyClass::Func1(), donde MyClass es una clase de C++ con una función miembro Func1.

No es aplicable

No es aplicable

Recuperar caracteres de una cadena

GetChar, o str(10) donde es una cadena str

*(p + 10) o p[10], donde p es un char * o wchar_t *

str[10], donde str es una cadena

string

str.Chars(10), donde str es una cadena

Cadenas

Declarar un tipo de datos compuesto (estructura)

Estructura

Clase

Interfaz

clase

struct

union

__interface

struct

clase

interfaz

Clases

Inicializar un objeto (constructor)

Sub New()4

constructores (concepto, no palabra clave)

Constructores, o constructores de tipos predeterminados del sistema

Constructores de clase

Constructores

Finalizar un objeto de forma directa

No es aplicable

~ClassName

No es aplicable

No es aplicable

Llamada del método por el sistema antes de que la recolección de elementos no utilizados reclame un objeto5

Finalize (en Visual Basic 6.0, Class_Terminate)

Destructores (C++) (concepto, no palabra clave)

Destructores

Finalize

Garantizar que los recursos no administrados se eliminan después de su uso

Using

No es aplicable

usar

Administración de recursos

Inicializar una variable donde se declara

Dim x As Long = 5

Dim c As New Car(FuelTypeEnum.Gas)

// inicializar con un valor:

int x=5;

//con un constructor adecuado:

C c(10);

// inicializar con un valor:

int x = 123;

// o utilizar el constructor predeterminado:

int x = new int();

let x = 123

Tomar la dirección de una función

AddressOf (este operador devuelve una referencia a una función en forma de instancia de delegado)

delegado

delegado

Funciones

Devolución de llamada

Pase la dirección de una función a otra que devuelve la llamada al llamador.Para obtener un ejemplo, vea Cómo: Pasar procedimientos a otro procedimiento en Visual Basic.

CALLBACK (tipo estándar)

callback (atributo IDL)

delegado

No es aplicable

Declarar que un objeto se puede modificar de forma asincrónica

No es aplicable

volatile

volatile

No es aplicable

Forzar la declaración explícita de variables

Option Explicit

No aplicable (se deben declarar todas las variables antes de su uso)

No aplicable (se deben declarar todas las variables antes de su uso)

No aplicable (se deben declarar todas las variables antes de su uso)

Habilitar la inferencia de tipo de variable local

Option Infer

La inferencia de tipos está habilitada automáticamente

Probar una variable objeto que no hace referencia a un objeto

obj Is Nothing

pobj == NULL

obj == null

Use un tipo de opción en una expresión de coincidencia

Opción

Expresiones de coincidencia

Valor de una variable objeto que no hace referencia a un objeto

Nothing

nullptr

null

Valores NULL

Probar una expresión de tipo null de una base de datos

IsDBNull

No es aplicable

No es aplicable

No es aplicable

Probar si una variable Variant se ha inicializado

No es aplicable

No es aplicable

No es aplicable

No es aplicable

Definir una propiedad predeterminada

Default

property: la palabra clave de property hace referencia a código administrado

Indizadores

Propiedades indizadas

Programación orientada a objetos

Objetivo

Visual Basic

C++

C#

F#

Hacer referencia a una clase base

MyBase

__super

base

base

Declarar una interfaz

Interfaz

__interface

clase de interfaz

interfaz

interfaz

Especificar una interfaz para que se implemente

Implements

Sólo hay que derivar de la interfaz.

class C1 : public I1

class C1 : I1

Interfaces

interfaz

Declarar una clase

Clase

clase

clases y Structs (administrados)

clase

type

Declarar un módulo

Módulo

static class

static class

módulo

Declarar una definición parcial de una clase o estructura

Partial

No es aplicable

Partial

No hay equivalente directo.Vea Extensiones de tipo (F#).

Especificar que una clase sólo se puede heredar.No se puede crear una instancia de la clase

MustInherit

resumen (Visual C++)6

abstract

Clases abstractas

Especificar que una clase no se puede heredar

NotInheritable

sellado

sealed

SealedAttribute

Declarar un tipo enumerado

Enum

enum

enum

type

Declarar una constante de clase

Const

const

const (se aplica a una declaración de campo)

Los valores son inmutables (constantes) de forma predeterminada.Vea Valores (F#).

Derivar una clase de una clase base

Clase C1 hereda C2

Class C1 : public Base (No se requiere ninguna palabra clave para esta finalidad)

class C1 : C2

clase

heredar

Reemplazar un método o una propiedad

Overrides

(No se requiere ninguna palabra clave para esta finalidad salvo override para compilaciones de /clr. Vea Clases derivadas)

override

override

Declarar un método que se debe implementar en una clase que se deriva

MustOverride

Poner = 0 al final de la declaración (método virtual puro)

abstract

abstract

Declarar un método que no se puede reemplazar

NotOverridable (Los métodos son NotOverridable de manera predeterminada)

sellado

sealed

Use el atributo Sealed

Declarar una propiedad o método virtual, o descriptor de acceso de propiedad

Overridable

virtual

virtual

abstract, tal y como se describe en Métodos

Oculta un miembro de clase base en una clase derivada.

Sombrear

nuevo (nueva ranura en vtable)

new

No se permite ocultar un método virtual o abstracto

Declarar una referencia con seguridad de tipos a un método de una clase

Delegado

delegado

delegado

myObj.myFunction donde myObj es un objeto y myMethod es un método disponible en ese objeto

Especificar que una variable puede contener un objeto cuyos eventos se desea controlar

WithEvents

No es aplicable

Escribir código. No hay una palabra clave específica

No es aplicable

Especificar los eventos para los que se llamará a un procedimiento de evento.

Handles (Los procedimientos de eventos todavía se pueden asociar a una variable WithEvents denominando el modelo)

No es aplicable

event += eventHandler;

No es aplicable

Evaluar una expresión de objeto una vez para tener acceso a varios miembros

With...End With

No es aplicable

No es aplicable

No es aplicable

Control de excepciones

Objetivo

Visual Basic

C++

C#

F#

Control de excepciones

Try...Catch...Finally...End Try

Throw

Control de excepciones estructurado:__try, __except

__finally

Control de excepciones de C++:

try, catch, throw

Control de excepciones de CLR:

Control de excepciones con /clr

try, catch, finally

throw

try

con

finally

Estructuras de decisión

Objetivo

Visual Basic

C++

C#

F#

Estructura de decisión (selección)

Seleccionar...Case...End Select

switch, case, default

goto

break

modificador, caso

predeterminados

goto

break

Expresiones de coincidencia

Estructura de decisión (if ...then)

If...Then...Else...End If

ElseIf

if, else

if, else

if...then...else

Estructura de bucle (condicional)

While...End While

Do...Loop

do, while

continue

do

while

continue

while...do

Estructura de bucle (iteración)

For...Next

For Each...Next

for

for

foreach

for...to

for...in

Matrices

Objetivo

Visual Basic

C++

C#

F#

Declarar una matriz

Dim a() As Long

int x[5];

int[] x = new int[5];

let x = [| 1; 2; 3; 4; 5 |]

Matrices

Inicializar una matriz

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

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

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

let x = [| 1; 2; 3; 4; 5 |]

Matrices

Reasignar matriz

Redim

No es aplicable

No es aplicable

No es aplicable

Ámbito de clase

Objetivo

Visual Basic

C++

C#

F#

Visible fuera del proyecto o del ensamblado

Public

public

public

public

Visible únicamente en el ensamblado en el que está declarado.

Friend

private

internal

internal

Visible sólo dentro de las clases actuales o derivadas

Protected

No es aplicable

Protected

No es aplicable

Acceso limitado al ensamblado actual o a los tipos derivados de la clase contenedora.

Protected Friend

Tipos y miembros Visibility

protected internal

Niveles de accesibilidad

No es aplicable

Sólo visible dentro del proyecto (para clases anidadas, dentro de la clase envolvente)

Private

private

private

private

Ámbito de miembro

Objetivo

Visual Basic

C++

C#

F#

Accesible fuera de la clase, el proyecto y el módulo

Public

public

public

public

Accesible fuera de la clase, pero dentro del proyecto o paquete

Friend

public private

internal

internal

Accesible sólo para clases actuales y derivadas

Protected

protected

protected

No es aplicable

Sólo accesible dentro de la clase o el módulo

Private

private

private

private

Especificar que una función u otra clase tiene acceso a miembros privados de la clase que se declara

No es aplicable

friend

No es aplicable

No es aplicable

Protegido dentro del ensamblado y privado para los demás ensamblados

No es aplicable

protected private

No es aplicable

No es aplicable

Acceso limitado al ensamblado actual o a los tipos derivados de la clase contenedora

Protected Friend

Tipos y miembros Visibility

protected internal

Niveles de accesibilidad

No es aplicable

Períodos de duración varios

Objetivo

Visual Basic

C++

C#

F#

Conservar las variables locales de un procedimiento

Static7

static

static

No es aplicable

Compartido por todas las instancias de una clase.

Shared

static

static

static

Varios

Objetivo

Visual Basic

C++

C#

F#

Comentar código

'

Rem

//, /* */ para comentarios de varias líneas

//, /* */ para comentarios de varias líneas

/// para comentarios XML

//, (* *) para comentarios de varias líneas

Distinguir mayúsculas de minúsculas

No

Llamar a la API de Windows

Declare <API>

No es aplicable

Utilizar invocación de plataforma

Utilizar invocación de plataforma.

Vea Funciones externas (F#).

Declarar y provocar un evento.

Evento

RaiseEvent

No es aplicable

evento

Eventos

Tipos primitivos de subprocesamiento

SyncLock

No es aplicable

bloquear

bloquear

Ir a (ramificación)

Goto

goto

goto

No es aplicable

1 En Visual Basic, el único lugar en que Static se puede utilizar independientemente para declarar una variable (por ejemplo, Static x As Long) es dentro de un procedimiento.

2 En Visual Basic, los procedimientos declarados con la palabra clave Sub no pueden devolver valores.Si un procedimiento tiene que devolver un valor, se debe declarar con la palabra clave Function.

3 En Visual Basic, la palabra clave Me no se resuelve en tiempo de compilación, por lo que se puede utilizar como valor devuelto de una propiedad o método.

4 En Visual Basic, los constructores de las clases derivadas de .NET Framework System.Object siempre se denominan New.

5 Normalmente, el código de este método libera recursos del sistema que no liberaría automáticamente el recolector de elementos no utilizados.

6 En C++, una clase abstracta incluye al menos un miembro virtual puro.

7 En Visual Basic, las variables locales estáticas de métodos de clases no compartidos se almacenan por instancia de clase, en lugar de compartir una única copia como ocurre en otros lenguajes.Cuando se utiliza Static para declarar una variable, se conserva el valor de esa variable aunque pierda el ámbito y lo vuelva a obtener después.

Vea también

Referencia

Conceptos de programación comparados en diferentes lenguajes y ejemplos de código

Operadores comparados en varios lenguajes

Tipos de datos comparados en varios lenguajes

Comparación de los controles y objetos programables de distintos lenguajes y bibliotecas

Otros recursos

Equivalentes del lenguaje