如何在C++/CLI中使用C#Enum

Mat*_*ttC 1 c# c++-cli

我有一个包含枚举的C#程序集:

public enum MyEnum
{
    OK = 0, 
    NOT_OK = -1
}
Run Code Online (Sandbox Code Playgroud)

我已经添加了对C++/CLI项目的引用,但我不知道如何从函数返回值.

标题:

#pragma once

using namespace System;
using namespace MyNamespace;

namespace NativeWrapper {

    public ref class API
    {
        public:
            static MyNamespace::MyEnum Go();
    };

}
Run Code Online (Sandbox Code Playgroud)

CPP:

#include "StdAfx.h"
#include "API.h"

using namespace NativeWrapper;

MyNamespace::MyEnum API::Go()
{
    return MyEnum.OK;
}
Run Code Online (Sandbox Code Playgroud)

我在构建项目时得到以下内容:

error C2275: 'MyNamespace::MyEnum' : illegal use of this type as an expression

Dav*_*Yaw 10

你需要冒号,而不是一个时期.

MyNamespace::MyEnum API::Go()
{
    return MyEnum::OK;
}
Run Code Online (Sandbox Code Playgroud)

另请注意,如果MyEnum最初是用C++/CLI编写的,则需要将其声明为public enum class MyEnum { ... }使其成为可以在C#中使用的托管枚举.