急,高分求救,分不够加,加完为止,UP有分:关于强类型集合的问题!详细见内容!

new_stranger 2003-07-16 06:10:04
//.h
#pragma once
#using <mscorlib.dll>
using namespace System;
using namespace System::Collections;

__gc class DictionaryInheritor : public DictionaryBase
{
public:

DictionaryInheritor(void);

~DictionaryInheritor(void);

__property Object * get_Item( Object * key ); //语句1
__property void set_Item( Object * key, Object * value ); //语句2

__property String * get_Item( String * key ); //语句3
__property void set_Item( String * key, String * value ); //语句4

};

//.cpp
#include "StdAfx.h"
#include "dictionaryinheritor.h"


DictionaryInheritor::DictionaryInheritor(void)
{

}


DictionaryInheritor::~DictionaryInheritor(void)
{

}

Object * DictionaryInheritor::get_Item(Object * key) //语句1
{
IDictionary * pDictionary = get_Dictionary();
return pDictionary->get_Item(key);
}

void DictionaryInheritor::set_Item(Object * key, Object * value) //语句2
{
IDictionary * pDictionary = get_Dictionary();
pDictionary->set_Item(key,value);
}


String * DictionaryInheritor::get_Item(String * key) //语句3
{
IDictionary * pDictionary = get_Dictionary();
return ( static_cast<String*>(pDictionary->get_Item(key)) );
}

void DictionaryInheritor::set_Item(String * key, String * value) //语句4
{
IDictionary * pDictionary = get_Dictionary();
pDictionary->set_Item( key, value );
}

/////////////////////
在.h和.cpp文件中
如果注释掉语句3和语句4,编译正常,运行正常,

如果注释掉语句1和语句2,这编译时的错误信息:
DictionaryInheritor.h(44): error C3815: “System::Collections::IDictionary::get_Item”方法的返回类型必须与“DictionaryInheritor::set_Item”最后一个参数的类型匹配
DictionaryInheritor.h(44): error C3815: “System::Collections::IDictionary::get_Item”方法的返回类型必须与“DictionaryInheritor::set_Item”最后一个参数的类型匹配

我的目的是实现强类型集合,在运行时不用对加入的对象进行类型转换了,
在MSDN里有一个类 DiscoveryExceptionDictionary 是这样实现的:
public: __property Exception* get_Item(String* url);
public: __property void set_Item(String* url, Exception*);

而我为什么不能改变Object 为String ?
听说.NET有很多BUG,这是我的程序有问题还是.NET的BUG?

???????????????????????????????WHY??????????????????????????????
...全文
95 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
devzhao 2003-07-29
  • 打赏
  • 举报
回复
up
stavck 2003-07-29
  • 打赏
  • 举报
回复
2002的bug,装2003吧
majh5235 2003-07-16
  • 打赏
  • 举报
回复
object转为string必须强制转化,而string转为object可隐式转化
为什么人人都要学算法? 程序员对算法通常怀有复杂情感,算法很重要是共识,但是否每个程序员都必须学算法是主要的歧点。很多人觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上算法,觉得算法深不可测。但是这些其实都不是具体的算法,而是一系列算法的集合。 所以说,好的代码从来离不开优秀的算法!算法不学不可! 本门课程为系列课程第一课,挑选出非常实用、高效、高频的算法:动态规划! 动态规划(Dynamic programming,简称DP)很多人都觉得是比较难以理解和掌握的一种算法,为了应付面试更多的时候程序员会选择直接死记硬背斐波那楔数列或者背包问题的源码,其实只要认真学习、彻底理解,动态规划并没有那么难。 学完即可掌握面试中90% 以上会问到的算法问题 ,实用性99.9999%! 这门课程,授课老师很厉害! 王硕-资深软件工程师,从事计算机相关课程教学多年,擅长Java、Python、数据结构和算法等课程,有丰富的计算机课程的教学经验。致力于企业级软件开发和计算机教育工作,具有索尼中国研究院和四大国有银行软件开发中心的工作经历。 著有编程畅销书《你也能看得懂的Python算法书》。 本课程实用性极,边学边练!零基础也能轻松入门~ 在这门课中,我们保证你能收获到这些 1)透彻理解:到底什么是动态规划 2)细致讲解:挖矿工问题 3)细致讲解:爬台阶问题 4)细致讲解:背包问题 【注意】 1)现在购买至少享受40元优惠;2)课程教辅材料自助下载; ---------------------------------------------------------------

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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