能否在托管类型中创建一个引用类型?

xombat 2007-03-12 07:08:58
这一句话怎么理解:(.net2005msdn中gcnew文档)
It is possible to create an instance of a managed type, where the managed type contains a nested type other than a reference type。

我理解的是:在托管类中不能包含有引用类型。
但是我在.net2005种实际运行了一下这个代码,并且实例化,它能够运行。
ref class MyClass {
public:
System::String ^msg;


ref class Value_Nested_Class {
public:
System::String^ msg;
};
// Value_Nested_Class My_Value_Class;
void Test() {}
};
但是将注释掉的内容启用,会出现链接时错误:
error LNK2022: 元数据操作失败(80131188): 重复类型中的字段声明不一致(类型: MyClass;字段: My_Value_Class): (0x04000002)。

怎么解释?期待讨论?
至于那句英文句子有没有什么更准确的解释?
...全文
295 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xombat 2007-03-14
  • 打赏
  • 举报
回复
ref class MyClass {
public:
System::String ^msg;


ref class Value_Nested_Class {
public:
System::String^ msg;
};
Value_Nested_Class My_Value_Class;
void Test() {}
};

这个为什么出现错误?
是因为在引用类型中定义了引用类型了吗?
真相重于对错 2007-03-14
  • 打赏
  • 举报
回复
Value_Nested_Class My_Value_Class;
=====>
Value_Nested_Class^ My_Value_Class;
xombat 2007-03-14
  • 打赏
  • 举报
回复
ding
晨星 2007-03-12
  • 打赏
  • 举报
回复
“other than”是不是的意思,所以你原来的理解正好反了。
他的意思差不多就是:一个托管类型,即使包含一个非引用类型的子类型,也是没问题的,也可以实例化。
晨星 2007-03-12
  • 打赏
  • 举报
回复
It is possible to create an instance of a managed type, where the managed type contains a nested type other than a reference type。

意思应该是:创建一个包含有一个内置非引用类型的托管类型的实例是可能的。
——好别扭哦,但想了一会儿,也没想出符合汉语习惯的翻法。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧