InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial C#
Introduccion a C#
Programacion con C#
Fundamentos de C#
Operadores
Instrucciones
Estrcuturas de control.
Definición de clases
Creación de objetos
Herencia y métodos virtuales
Polimorfismo
Ocultación de miembros
Miembros de tipo
Encapsulación
Espacios de nombres
Importación de espacios de nombres
Espacio de nombres distribuidos
Variables y tipos de datos
Tablas unidimensionales
Tablas multidimensionales
La clase System.Array
Cadenas de texto
Constantes
Orden de inicialización de variables
Métodos
Métodos externos
Constructores
Destructores
Propiedades
Indizadores
Redefinición de operadores
Delegados y eventos
La clase MulticastDelegate
Llamadas asíncronas
Implementación interna de los delegados
Eventos
Estructuras
Boxing y unboxing
Constructores de estructuras
Enumeraciones
Interfaces
Excepciones
Otras instrucciones
Atributos
Definición de nuevos atributos
Lectura de atributos en tiempo de ejecución
Atributos de compilación
Pseudoatributos
Código inseguro
Definición de punteros
Manipulación de punteros
Operadores relacionados con código inseguro
Fijación de variables apuntadas
Novedades de C# 2.0
Genéricos
Tipos parciales
Iteradores
Mejoras en la manipulación de delegados
Tipos anulables
Modificadores de visibilidad de bloques get y set
Clases estáticas
Referencias a espacios de nombres
Supresión temporal de avisos
Atributos condicionales
Incrustación de tablas en estructuras
Modificaciones en el compilador
También puedes ver ...
Creando cadenas de conexión ConnectionStrings en .net 3.5 o visual Studio 2008 usando SqlConnectionStringBuilder
Migración de WSE a WCF (Web Services de 2005 a 2008)
Generar archivos PDF con C#
TransactionScope - Simplificando el trabajo con transacciones.
LinQ To SQL - Un ejemplo sencillo
Cómo activar Intelisense (autocompletado) en el Web.config
Leer un campo XML de SQL Server 2005 con C#
TripleDES - Un ejemplo practico en C#
Mostrar un GridView dentro de un DataList
String.Format

Afiliados
La Web del programador
MundoProgramacion


 

Métodos externos

    Un método externo es aquél cuya implementación no se da en el fichero fuente en que es declarado. Estos métodos se declaran precediendo su declaración del modificador extern. Como su código se da externamente, en el fuente se sustituyen las llaves donde debería escribirse su cuerpo por un punto y coma (;), quedando una sintaxis de la forma:

extern <nombreMétodo>(<parámetros>);
          

    La forma en que se asocie el código externo al método no está definida en la especificación de C# sino que depende de la implementación que se haga del lenguaje. El único requisito es que no pueda definirse un método como abstracto y externo a la vez, pero por todo lo demás puede combinarse con los demás modificadores, incluso pudiéndose definir métodos virtuales externos.

    La forma más habitual de asociar código externo consiste en preceder la declaración del método de un atributo de tipo System.Runtime.InteropServices.DllImport que indique en cuál librería de enlace dinámico (DLL) se ha implementado. Este atributo requiere que el método externo que le siga sea estático, y un ejemplo de su uso es:


  using System.Runtime.InteropServices;  // Aquí está definido DllImport
 
  public class Externo
  {
   [DllImport("kernel32")]
   public static extern void CopyFile(string fuente, string destino);
 
   public static void Main()
   {
    CopyFile("fuente.dat", "destino.dat");
   }           
  }

    El concepto de atributo se explica detalladamente en el Tema 14:Atributos. Por ahora basta saber que los atributos se usan de forman similar a los métodos sólo que no están asociados a ningún objeto ni tipo y se indican entre corchetes ([]) antes de declaraciones de elementos del lenguaje. En el caso concreto de DllImport lo que indica el parámetro que se le pasa es cuál es el fichero (por defecto se considera que su extensión es .dll) donde se encuentra la implementación del método externo a continuación definido.

    Lo que el código del ejemplo anterior hace es simplemente definir un método de nombre CopyFile() cuyo código se corresponda con el de la función CopyFile() del fichero kernel32.dll del API Win32. Este método es llamado en Main() para copiar el fichero de nombre fuente.dat en otro de nombre destino.dat. Nótese que dado que CopyFile() se ha declarado como static y se le llama desde la misma clase donde se ha declarado, no es necesario precederlo de la notación <nombreClase>. para llamarlo.

    Como se ve, la utilidad principal de los métodos externos es permitir hacer llamadas a código nativo desde código gestionado, lo que puede ser útil por razones de eficiencia o para reutilizar código antiguamente escrito pero reduce la portabilidad de la aplicación.


Inicio | Tutorial C# MétodosTutorial C#Constructores Versión para imprimir Foros de consulta


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial C# MétodosTutorial C#Constructores Versión para imprimir

Métodos externos
Autor: José Antonio González Seco
Visitas: 7009 Fecha de publicación: 12/10/2006
José Antonio es experto en tecnologias Microsoft. Imparte cursos y conferencias en congresos sobre C# y .NET en Universidades de toda España (Sevilla, Barcelona, San Sebastián, Valencia, Oviedo, etc.) en representación de grandes empresas como Microsoft.




Visitas: 304 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET|CSS|ASP.NET
Visitas: 137 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS
Visitas: 101 | Comentarios: 5 | Archivo: Articulos
Categorias: TFS
Visitas: 430 | Comentarios: 4 | Archivo: Articulos
Categorias: Transact-SQL|LinQ
Visitas: 1448 | Comentarios: 6 | Archivo: Articulos
Categorias: Visual Basic .NET|C#|ASP.NET|ASP.NET|Programación|ADO.NET
27/09/2008 Navegando ....
Visitas: 238 | Comentarios: 0 | Archivo: Articulos
Categorias: Humor
Visitas: 611 | Comentarios: 0 | Archivo: Articulos
Categorias: Visual Basic .NET|C#|ASP.NET|ASP.NET|Programación|WCF
Visitas: 2573 | Comentarios: 4 | Archivo: Articulos
Categorias: C#
Visitas: 464 | Comentarios: 0 | Archivo: Articulos
Categorias: JavaScript|ASP.NET
Visitas: 1072 | Comentarios: 0 | Archivo: Articulos
Categorias: Windows XP|Linux|Windows Vista

Útimos temas recibidos en los foros ...
Enviar un email con C# utilizando .Net FrameWork 2.0 con logo... por Moises ... [ASP.NET] 1 21/11/2008
Crystal reports XI Release 2 y asp.net por mvargas ... [ASP.NET] 0 21/11/2008
Enviar un email con C# utilizando .Net FrameWork 2.0 por Moises ... [C#] 0 21/11/2008
Cuestión de BFILE. por Megatron ... [ORACLE] 0 21/11/2008
Enviar email por Dol ... [ASP.NET] 5 21/08/2007
*******PREGUNTA********: por T.S.U.En Informatíca ... [Visual Basic 6.0] 5 17/03/2008
Programar tareas en oracle. por Rodrigo ... [ORACLE] 0 21/11/2008
fechas con datatimepicker por peyin ... [Visual Basic .NET] 3 20/11/2008
agregar datos de un gridview a un textbox por jhors ... [ASP.NET] 3 19/09/2007
Select de sql en c# por Stuart ... [C#] 1 20/11/2008
Manual en Español de SQL Navigator for Oracle por Maira ... [ORACLE] 12 30/03/2008
Como mandar mensaje a Celular por Pako ... [C#] 40 13/03/2007

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
22/10/2005 Introducción SQL    forma parte de...Tutorial SQL
21/02/2006 Introducción a .NET
01/08/2007 Actualizar datos en Transact SQL    forma parte de...Tutorial de Transact SQL
02/09/2007 Procedimientos almacenados en Transact SQL    forma parte de...Tutorial de Transact SQL
22/10/2005 Insertar datos. INSERT    forma parte de...Tutorial SQL
27/10/2006 Eventos    forma parte de...Tutorial C#
21/07/2007 Insertar datos en Transact SQL    forma parte de...Tutorial de Transact SQL
11/03/2008 Problemas en la instalación de Visual Studio 2008-Visual studio web authoring component
28/08/2006 Ubuntu en VmWare con VMware Tools
22/10/2005 Consultar datos. SELECT    forma parte de...Tutorial SQL

 

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]