C++ cli __财产对财产
我正在将一个项目从/oldsyntax转换为/clr,在public\uu gc类读取器中转换属性时遇到问题,该类读取器现在已成为public ref类读取器 我在.h文件中有这些属性(以及其他属性)C++ cli __财产对财产,c++-cli,managed-c++,C++ Cli,Managed C++,我正在将一个项目从/oldsyntax转换为/clr,在public\uu gc类读取器中转换属性时遇到问题,该类读取器现在已成为public ref类读取器 我在.h文件中有这些属性(以及其他属性) __property void set_Xml(System::String *value); __property System::String *get_Xml(); 然后在.cpp文件中 void Reader::set_Xml(System::String *value) { i
__property void set_Xml(System::String *value);
__property System::String *get_Xml();
然后在.cpp文件中
void Reader::set_Xml(System::String *value)
{
if(value->Chars[0] == '<'){
reader->put_xml(stlString(value).c_str());
}
else {
reader->put_xml_file(stlString(value).c_str());
}
}
System::String *Reader::get_Xml()
{
return gcString(reader->get_xml(), reader->state.is_utf8);
}
void Reader::set_Xml(系统::字符串*值)
{
如果(value->Chars[0]=='注释中发布的内容包含有关属性新语法的所有信息
- 旧:用特定的命名约定声明方法,用
\uu属性
修饰它们
- 新:在类中声明一个属性块,并拥有具有附加作用域级别的方法。(注意:我不确定“附加作用域级别”是否是描述它的正确方式,请参见下文。)
对于类型为String
的名为Xml
的属性,语法为:
在头文件中:
public ref class Reader
{
public:
property String^ Xml
{
String^ get();
void set(String^ value);
}
}
在.cpp文件中:
String^ Reader::Xml::get()
{
return whatever;
}
void Reader::Xml::set(String^ value)
{
whatever = value;
}
我以前也看过这个链接,但它与我的情况不符。我将尝试删除_属性,并将get_Xml和set_Xml保留为普通方法。对于托管类,还需要将*
替换为^
,我已将它们重写为:void set_Xml(System::String^value);和System::String^get_Xml();非常感谢。我现在正在重写我的所有属性。