C# 코드를 호출 할 수있는 C++/CLI 래퍼가 있습니다. C# 코드에서는 nullable enum을 매개 변수로 받아들이는 메서드가 있지만 래퍼의 null 매개 변수로이 메서드를 호출하는 방법을 알 수 없습니다.C++/CLI에서 관리되는 C#으로 Nothing 보내기
C#을 방법 :
public int DoSomething(MyEnum? option)
{
if (option != null)
//Do something
else
//Do something else
}
해봐요() 호출하는 C++ 기능 : 나는 몇 가지를 시도했지만 아무것도 지금까지 근무하지 않았다
int MyMethod(int option)
{
int myVal;
if (option > -1)
{
myVal = component->DoSomething((CSharpNameSpace::MyEnum)option); //This works
}
else
{
myVal = component->DoSomething(??); //I want to send null here
}
}
:
- 0 전송을 NULL , 또는 nullptr 컴파일되지 않습니다.
- (CSharpNameSpace :: MyEnum) NULL i 값을 0으로 설정하는 것
나는 C# 코드를 제어 할 수 없기 때문에 열거 형을 none 값이나 그와 비슷한 것으로 변경할 수 없다.
무엇 C++ 코드에서 실제의 형태가'MyEnum', 그리고 당신이 C 번호에'MyEnum' 종류와 같은지 어떻게 셨나요? – PaulMcKenzie
실제로 CSharpNameSpace :: MyEnum으로 사용 중입니다 ... 코드를 업데이트 할 것입니다 ... –
은 C++ env에 정의 된 모두 소문자'null'입니까? –