Altova MapForce 2023 Enterprise Edition

Un método de instancia es un método al que se le pasa un objeto .NET como primer argumento de la llamada al método. Este objeto .NET se suele crear usando una función de extensión (por ejemplo, una llamada a un constructor) o un parámetro o una variable de una hoja de estilos. Un ejemplo de código XSLT para este tipo de método sería:

 

<xsl:stylesheet version="2.0"

   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

   xmlns:xs="http://www.w3.org/2001/XMLSchema"

   xmlns:fn="http://www.w3.org/2005/xpath-functions">

   <xsl:output method="xml" omit-xml-declaration="yes"/>

   <xsl:template match="/">

      <xsl:variable name="releasedate"

         select="date:new(2008, 4, 29)"

         xmlns:date="clitype:System.DateTime"/>

      <doc>

         <date>

            <xsl:value-of select="date:ToString(date:new(2008, 4, 29))"

               xmlns:date="clitype:System.DateTime"/>

         </date>

         <date>

            <xsl:value-of select="date:ToString(\$releasedate)"

               xmlns:date="clitype:System.DateTime"/>

         </date>

      </doc>

   </xsl:template>

</xsl:stylesheet>

 

                 

En el ejemplo anterior, se usó un constructor System.DateTime (new(2008, 4, 29)) para crear un objeto .NET de tipo System.DateTime. Este objeto se creó dos veces, una vez como valor de la variable releasedate, y otra vez como primer y único argumento del método System.DateTime.ToString(). Al método de instancia System.DateTime.ToString() se le llama dos veces, ambas con el constructor System.DateTime (new(2008, 4, 29)) como primer y único argumento. En una de estas instancias, se usó la variable releasedate para obtener el objeto .NET.

 

 

Métodos de instancia y campos de instancia

La diferencia entre un método de instancia y un campo de instancia es solo teórica. En un método de instancia, se pasa directamente un objeto .NET como argumento. En un campo de instancia, se pasa un parámetro o una variable (aunque el parámetro o la variable puede contener un objeto .NET). Por ejemplo, en el código del ejemplo anterior, la variable releasedate contiene un objeto .NET y esta es la variable que se pasa como argumento de ToString() en el segundo constructor de elemento date. Por tanto, la instancia ToString() del primer elemento date es un método de instancia, mientras que la segunda se considera un campo de instancia. El resultado es el mismo en ambos casos.

 

© 2017-2023 Altova GmbH