كيف تعبر عن كثافة [] الخاصية في واجهة لغة وصف؟

StackOverflow https://stackoverflow.com/questions/1208654

  •  05-07-2019
  •  | 
  •  

سؤال

وكيف تنفذ هذه الخاصية في المختبر الدولي للألماس:

    public int[] Params
    {
        get
        {
            return _Params;
        }
        set
        {
            _Params = value;
        }
    }

وحاولت رمز المختبر الدولي للألماس أدناه

[propget, helpstring("The click through parameters")] 
    HRESULT Params([out, retval] int *rVal);
[propput, helpstring("The click through parameters")] 
    HRESULT Params([in] int *RnewVal);

ولكن المترجم بلدي تبحث عن هذا

public int get_Params()
{
    throw new NotImplementedException();
}

public void set_Params(ref int rVal)
{
    throw new NotImplementedException();
}

وأنا متأكد من 99.999٪ انها مشكلة مع أنواع.

هل كانت مفيدة؟

المحلول

وCOM typelib المستورد يفضل التعامل مع واجهات أتمتة متوافقة، وذلك باستخدام SAFEARRAY:

[propget, helpstring("The click through parameters")] 
HRESULT Params([out, retval] SAFEARRAY(long) *rVal);

[propput, helpstring("The click through parameters")] 
HRESULT Params([in] SAFEARRAY(long) RnewVal);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top