为什么C#将我的颜色结构更改为ValueType? 我在C++ CLI中定义了以下代码。 但是,当我想调用SetColor时,第一个参数应该显示为System.Drawing.Color;显示为ValueType。 这也让我可以将任何变量传递给它。不管它是不是颜色 [System::Runtime::CompilerServices::ExtensionAttribute] public ref class MyExtensions abstract sealed { public: [System::Runtime::CompilerServices::ExtensionAttribute] static System::String^ SetColor(System::String^ in, System::Drawing::Color^ ext) { return gcnew System::String("{") + ext->R.ToString("X") + ext->G.ToString("X") + ext->B.ToString("X") + gcnew System::String("}") + in; } };

为什么C#将我的颜色结构更改为ValueType? 我在C++ CLI中定义了以下代码。 但是,当我想调用SetColor时,第一个参数应该显示为System.Drawing.Color;显示为ValueType。 这也让我可以将任何变量传递给它。不管它是不是颜色 [System::Runtime::CompilerServices::ExtensionAttribute] public ref class MyExtensions abstract sealed { public: [System::Runtime::CompilerServices::ExtensionAttribute] static System::String^ SetColor(System::String^ in, System::Drawing::Color^ ext) { return gcnew System::String("{") + ext->R.ToString("X") + ext->G.ToString("X") + ext->B.ToString("X") + gcnew System::String("}") + in; } };,c#,.net,visual-c++,c++-cli,extension-methods,C#,.net,Visual C++,C++ Cli,Extension Methods,颜色是一种结构。从参数System::Drawing::Color^ext中删除^ 另外,gcnew System::String(“{”)是多余的。只需直接使用“{”,它已经是一个字符串对象。Color是一个结构。从参数System::Drawing::Color^ext中删除^ 另外,gcnewsystem::String(“{”)是多余的。只需使用“{”直接,它已经是一个字符串对象。这没有帮助,我的问题仍然存在!在您编辑的问题中,您删除了^,但将对R、G和B属性的调用保留为->。它们应该切

颜色是一种结构。从参数
System::Drawing::Color^ext
中删除
^


另外,
gcnew System::String(“{”)
是多余的。只需直接使用
“{”
,它已经是一个字符串对象。

Color是一个结构。从参数
System::Drawing::Color^ext
中删除
^


另外,
gcnewsystem::String(“{”)
是多余的。只需使用
“{”
直接,它已经是一个字符串对象。

这没有帮助,我的问题仍然存在!在您编辑的问题中,您删除了
^
,但将对R、G和B属性的调用保留为
->
。它们应该切换到
。您现在正在编译什么?抱歉,我必须刷新CLI项目修复此问题。再次感谢。这没有帮助,我的问题仍然存在!在您编辑的问题中,您删除了
^
,但将对R、G和B属性的调用保留为
->
。它们应该切换到
。您现在正在编译什么?很抱歉,我必须刷新CLI项目才能修复此问题。谢谢你又来了。