两个类相同结构如何进行赋值(=)

jauntlin 2006-10-26 05:17:57
如:A类和B类都为实体类,结构相同,现在想把A类里的成员的值都赋给B类(包括私有,公有,受保护)。该怎么做?直接=是不行的。可别说一个一个字段赋值过去,程序不能写死
...全文
342 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
charles_y 2006-10-27
  • 打赏
  • 举报
回复

B b;
a=b;
重载A的 = 运算符

public void operator =( B b)
{
x=b.x;
y=b.y;
.....
}
然后就可以 a=b了



frank_zu 2006-10-27
  • 打赏
  • 举报
回复
同意clone()的做法,满足你的要求.
jauntlin 2006-10-27
  • 打赏
  • 举报
回复
没人回答吗?结不了帖啊
lovefootball 2006-10-27
  • 打赏
  • 举报
回复
别人已经告诉了你方法
你为什么不试着自己去写代码呢?

看看有关反射的例子

using System.Reflection;

object o = ...;

Console.WriteLine(o.GetType().Name);

foreach (PropertyInfo pi in o.GetType().GetProperties(BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Instance))
{
object v = pi.GetValue(o,null);
Console.WriteLine("{0}={1}", pi.Name, v);

}
利用PropertyInfo的GetValue和SetValue完全可以满足你的要求
liujia_0421 2006-10-26
  • 打赏
  • 举报
回复
运算符重载,或者直接赋值吧。。
jauntlin 2006-10-26
  • 打赏
  • 举报
回复
当然有可能出现结构相同,但所以命名空间不一样的情况,类名也不同。
Ivony 2006-10-26
  • 打赏
  • 举报
回复
A类和B类都为实体类,结构相同
结构相同你整两个类干吗?
jauntlin 2006-10-26
  • 打赏
  • 举报
回复
不考虑继承的情况,该怎么做?谁帖代码上来通BUILD过就结帖
lovefootball 2006-10-26
  • 打赏
  • 举报
回复
加一个Clone 的方法

用反射实现~~~
lovvver 2006-10-26
  • 打赏
  • 举报
回复
用反射,一个一个写。
yeerh 2006-10-26
  • 打赏
  • 举报
回复
A类和B类都为实体类,结构相同........
____________________________________


那A可以继承于B...就实现了A到B的隐式转换..
yeerh 2006-10-26
  • 打赏
  • 举报
回复
实现A到B的显示转换.....
elivehai 2006-10-26
  • 打赏
  • 举报
回复
copy不可以吗?
我不懂电脑 2006-10-26
  • 打赏
  • 举报
回复
那就用继承的方式。然后直接转换成基类赋值。
boat2002w 2006-10-26
  • 打赏
  • 举报
回复
运算符重载,只能这样了
jijl2001 2006-10-26
  • 打赏
  • 举报
回复
只能这么搞,
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-26 05:17
社区公告

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