Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将null参数从VFP传递到.NET Com类_C#_Com_Null_Visual Foxpro_Foxpro - Fatal编程技术网

C# 将null参数从VFP传递到.NET Com类

C# 将null参数从VFP传递到.NET Com类,c#,com,null,visual-foxpro,foxpro,C#,Com,Null,Visual Foxpro,Foxpro,我在.NET中有一个类,并从foxpro中将该类作为COM对象调用。 此类具有可以接受不同类类型作为参数的方法。 如何将NULL传递给.NET类方法 [ClassInterface(ClassInterfaceType.AutoDual)] [ProgId("ParameterClass")] [ComVisible(true)] class ParameterClass { public ParameterClass f_ClassMethod_2(ParameterClass _d)

我在.NET中有一个类,并从foxpro中将该类作为COM对象调用。 此类具有可以接受不同类类型作为参数的方法。 如何将NULL传递给.NET类方法

[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId("ParameterClass")]
[ComVisible(true)]
class ParameterClass
{
    public ParameterClass f_ClassMethod_2(ParameterClass _d) 
    {
        Debugger.Launch();
        return _d;
    }
}
在VFP中创建对象:

cls= CREATEOBJECT("ParameterClass ")
此代码返回错误:

obj3 = cls.f_ClassMethod_2(null) 
//Error: OLE error code 0x80070057: The parameter is incorrect.
或此代码:

obj3 = cls.f_ClassMethod_2(.Null.) 
//Error: OLE error code 0x80070057: The parameter is incorrect.
prm = .Null.
obj3 = cls.f_ClassMethod_2(prm) 
//Error: OLE error code 0x80070057: The parameter is incorrect.
或此代码:

obj3 = cls.f_ClassMethod_2(.Null.) 
//Error: OLE error code 0x80070057: The parameter is incorrect.
prm = .Null.
obj3 = cls.f_ClassMethod_2(prm) 
//Error: OLE error code 0x80070057: The parameter is incorrect.

由于它们之间的空解释存在问题,我将在VB中尝试一个额外的方法,例如。。然后直接从方法内部调用方法

  public ParameterClass f_ClassMethodAsNULL() 
    {
        f_ClassMethod_2( null );
        ... etc...
    }
然后,您应该能够从VFP调用函数f_ClassMethodAsNULL()