出一个题目,200分,考考你:

超级大笨狼 2010-03-12 12:56:21
加精
怎么实现函数ChangeType,能达到如下功能?

int a= ChangeType( Object,a.GetType());
string b= ChangeType( Object,b.GetType());
bool c= ChangeType( Object,c.GetType());

就是根据前面的类型自动实现转换Object为该强类型?

支持常规的int,String,bool等类型就可以.

.Net2.0实现,和.Net3.0以上实现.

注意:
Convert.ChangeType实现不了这个功能.
因为他还需要强制转换,如:int i = (int)Convert.ChangeType(d, typeof(int));

...全文
6098 334 打赏 收藏 转发到动态 举报
写回复
用AI写文章
334 条回复
切换为时间正序
请发表友善的回复…
发表回复
TimDavid 2010-03-18
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!小技巧
gunag 2010-03-18
  • 打赏
  • 举报
回复
好贴,Mark
学习一下,
不用泛型有什么好的方法?
lunda8 2010-03-17
  • 打赏
  • 举报
回复
学习来的。
rockandroll1 2010-03-17
  • 打赏
  • 举报
回复
知识有限,路过
dz45693 2010-03-17
  • 打赏
  • 举报
回复
我认为做项目还是用泛型实在
KissMe_Java 2010-03-17
  • 打赏
  • 举报
回复
能力不够 学习中
Leo_云少 2010-03-17
  • 打赏
  • 举报
回复
本着路过帮顶的原则,敲下键盘
saintjetsu 2010-03-17
  • 打赏
  • 举报
回复
来迟了
wy19280469 2010-03-17
  • 打赏
  • 举报
回复
看下System.out.println()的源码 LZ
wy19280469 2010-03-17
  • 打赏
  • 举报
回复
参考JAVA的

System.out.println()

与你需求相同

vieri122 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 54 楼 0009 的回复:]

C# code
private static void Main(string[] args)
{
object obj;

obj = 123;
int a = ChangeType(obj, typeof(int));
Console.WriteLine(a);

obj = "abc";
string b = ChangeType(obj, typeof(string));
Console.WriteLine(b);

obj = true;
bool c = ChangeType(obj, typeof(bool));
Console.WriteLine(c);
}

static MixedType ChangeType(object value, Type type)
{
return new MixedType(value, type);
}

struct MixedType
{
private object _value;
private Type _type;

public MixedType(object value, Type type)
{
_value = value;
_type = type;
}

public static implicit operator int(MixedType mixedType)
{
return (int)Convert.ChangeType(mixedType._value, mixedType._type); ;
}

public static implicit operator bool(MixedType mixedType)
{
return (bool)Convert.ChangeType(mixedType._value, mixedType._type); ;
}

public static implicit operator string(MixedType mixedType)
{
return (string)Convert.ChangeType(mixedType._value, mixedType._type); ;
}
}
[/Quote]

这钟方式应该是不用泛型的唯一正确答案
youyoutianya 2010-03-17
  • 打赏
  • 举报
回复
蹭下分分,下载点东东,貌似这个系统有点问题,它是先检查自己的积分之后才考虑重复下载。悲剧。
  • 打赏
  • 举报
回复
学 习
bingtao001 2010-03-17
  • 打赏
  • 举报
回复
路过 看看!!
tonis47 2010-03-17
  • 打赏
  • 举报
回复
看不懂!路过
tianshi115 2010-03-17
  • 打赏
  • 举报
回复
强强强
jekon 2010-03-17
  • 打赏
  • 举报
回复
路过,打瓶酱油………………
hubeizx 2010-03-17
  • 打赏
  • 举报
回复
雁过无痕
qinw2002 2010-03-17
  • 打赏
  • 举报
回复
嗯。。。。。。。。。。
netchildren 2010-03-17
  • 打赏
  • 举报
回复
路过,踩一下
加载更多回复(309)

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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