Enum::GetValues() returns 零个元素
Enum::GetValues() returns zero elements
我的方法 Enum::GetValues() 有问题。它 returns 什么都没有——没有错误,没有元素。 'a' 的长度为零。此代码来自微软网站,因此这是官方示例。我不能让它工作。项目是针对.NET Framework 4.7.2的,这应该没问题。我正在使用 VS2022 进行所有更新。有人有什么建议吗?谢谢
Link: https://docs.microsoft.com/en-us/dotnet/api/system.enum.getvalues?view=net-6.0
using namespace System;
enum class Colors
{
Red, Green, Blue, Yellow
};
int main()
{
Console::WriteLine( "The values of the Colors Enum are:" );
Array^ a = Enum::GetValues( Colors::typeid );
for ( Int32 i = 0; i < a->Length; i++ )
{
Object^ o = a->GetValue( i );
Console::WriteLine( "{0}", Enum::Format( Colors::typeid, o, "D" ) );
}
}
示例应产生:
// The values of the Colors Enum are:
// 0
// 1
// 2
// 3
但结果只有:
The values of the Colors Enum are:
enum class
是 c++11 作用域枚举,而不是 .net 枚举,请参阅 https://docs.microsoft.com/en-us/cpp/dotnet/how-to-define-and-consume-enums-in-cpp-cli
处的注释
要使其成为 .net 枚举,您需要添加 private
或 public
。例如:
private enum class Colors
{
Red, Green, Blue, Yellow
};
我的方法 Enum::GetValues() 有问题。它 returns 什么都没有——没有错误,没有元素。 'a' 的长度为零。此代码来自微软网站,因此这是官方示例。我不能让它工作。项目是针对.NET Framework 4.7.2的,这应该没问题。我正在使用 VS2022 进行所有更新。有人有什么建议吗?谢谢
Link: https://docs.microsoft.com/en-us/dotnet/api/system.enum.getvalues?view=net-6.0
using namespace System;
enum class Colors
{
Red, Green, Blue, Yellow
};
int main()
{
Console::WriteLine( "The values of the Colors Enum are:" );
Array^ a = Enum::GetValues( Colors::typeid );
for ( Int32 i = 0; i < a->Length; i++ )
{
Object^ o = a->GetValue( i );
Console::WriteLine( "{0}", Enum::Format( Colors::typeid, o, "D" ) );
}
}
示例应产生:
// The values of the Colors Enum are:
// 0
// 1
// 2
// 3
但结果只有:
The values of the Colors Enum are:
enum class
是 c++11 作用域枚举,而不是 .net 枚举,请参阅 https://docs.microsoft.com/en-us/cpp/dotnet/how-to-define-and-consume-enums-in-cpp-cli
要使其成为 .net 枚举,您需要添加 private
或 public
。例如:
private enum class Colors
{
Red, Green, Blue, Yellow
};