Página principal
Artículos y trucos
Catálogo de productos
Ejemplos y descargas
Mis libros
Cursos de formación
Investigación y desarrollo
Libros recomendados
Mis páginas favoritas
Acerca del autor
 
En colaboración con Amazon
 
Intuitive Sight

Breve diccionario Delphi-C#

¿Cómo se hará xxx en C#? En el aprendizaje de un lenguaje de programación, es común hacer comparaciones con lenguajes o sistemas conocidos. A veces la correspondencia es exacta; a veces, sólo aproximada, pero sirve como guía o incluso como recurso nemotécnico. Entre la VCL de Delphi y el CLR de C#, existen muchas diferencias, pero también unas cuantas similitudes. Quiero que esta página sirva como referencia esporádica a quienes, como yo, entran en C# habiendo pasado primero por Delphi. Y espero aumentar este diccionario de correspondencias en la medida en que yo mismo me familiarice con el Common Language Runtime. He encontrado, además, un artículo en la MSDN que puede ayudar cuando el punto de partida es una función del API de Win32:

Tipos de datos básicos 
Delphi: Variant
 C#: object (incluyendo boxing&unboxing)
Delphi: Assert
 C#: System.Diagnostics.Debug.Assert (más un TraceListener)
Manejo de ventanas 
Delphi: TForm.FormStyle = fsMDIForm
 C#: Form.IsMDIContainer = true
Delphi: TForm.FormStyle = fsMDIChild
 C#: Form.MdiParent = ventanaPrincipal;
Delphi: TControl.Align
 C#: Control.Dock
Delphi: TForm.ShowModal
 C#: Form.ShowDialog()
Delphi: Button1.Default := True
 C#: Form.AcceptButton = button1
Delphi: TForm.ModalResult, TButton.ModalResult
 C#: Form.DialogResult, Button.DialogResult
Delphi: TButton.Click
 C#: Button.PerformClick()
Delphi: TButton.OnClick
 C#: Button.Click (es un evento)
Delphi: Screen.ActiveForm
 C#: static Form.ActiveForm
Delphi: Application.ExeName
 C#: System.Windows.Forms.Application.ExecutablePath
Delphi: Application.OnException
 C#: Application.ThreadException
 Acceso a datos 
Delphi: TCustomConnection (y sus descendientes)
 C#: IDbConnection (y las clases que lo implementan)
Delphi: TDataSetProvider
 C#: IDbDataAdapter (SqlDataAdapter, OleDbDataAdapter, etc)
Delphi: TClientDataSet
 C#: DataSet, DataTable
Delphi: TField
 C#: DataColumn
Delphi: TField.Required = True
 C#: DataColumn.AllowDBNull = false
Delphi: Variants.Null
 C#: System.DBNull.Value
El modelo de componentes 
Delphi: procedure Loaded; override;
 C#: Implementar ISupportInitialize
Delphi: property X ... default 100;
 C#: [DefaultValue(100)] int X { get; set; }
Delphi: public property X: Y;
 C#: [Browseable(false)] public Y X { get; set; }
Delphi: TService (aplicaciones de servicio)
 C#: System.ServiceProcess.ServiceBase