.NET:实例方法和实例字段
在一个实例方法中,一个.NET对象作为方法调用的第一个参数被传递给该方法。这类.NET对象通常可以使用扩展函数(如构造器调用)或样式表参数/变量来创建。以下是一个XSLT例子:
<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>
在上例中,System.DateTime构造器(new(2008, 4, 29))是用于创建一个类型为System.DateTime的.NET对象。该对象被创建了两次,第一次是作为releasedate变量的值,第二次是作为System.DateTime.ToString()方法的第一个且唯一一个参数。System.DateTime.ToString()实例方法被调用了两次,在这两次中都是将System.DateTime构造器(new(2008, 4, 29))作为其第一个且唯一一个参数。在其中一个实例中,releasedate变量用于获取.NET对象。
实例方法和实例字段
理论上实例方法和实例字段是不同的。在实例方法中,.NET对象被直接作为参数传递;在实例字段中,传递的是参数或变量,尽管参数或变量本身可能包含.NET对象。在上例中,releasedate变量包含一个.NET对象。正是该变量作为ToString()的参数在第二个date元素构造器中传递。因此,第一个date元素中的ToString()实例是一个实例方法,而第二个被视为一个实例字段。但是,在这两个实例中生成的结果是相同的。