What does the term VARIANT mean in a method definition?
<p>I'm working on in ABBYY Flexicapture that allows some of the scripts to be written in C#.NET, Ive never use C#.NET but it's close enough to Java that I'm getting by.  I have a <code>method</code> declaration that shows the following:</p>

<pre><code>Document:
    Property (name: string) : VARIANT
        Description: Retrieves the value of a specified property by its name. The returned value can be in the form of a string, a number or time.
        Properties names and returned values: 
            Exported - when the document was exported 
            ExportedBy - who exported the document 
            Created - when the document was created 
            CreatedBy - who created the document 
</code></pre>

<p>So I'm trying to get the "Exported By" value but when I try any of the the following lines I get errors:</p>

<pre><code>string = Document.Property("CreatedBy"); // Returns Error: Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?) (line 95, pos 21)
string = Document.Property(CreatedBy);  // Returns Error: Error: The name 'CreatedBy' does not exist in the current context (line 95, pos 39)
string = Document.Property("CreatedBy").Text; //Error: 'object' does not contain a definition for 'Text' (line 95, pos 52
</code></pre>

<p>I've never seen the <code>VARIANT</code> used before, can someone explain this to me.  Is there an obvious syntax error Im missing?</p>
