CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

class1 转化为 CLASS2

楼主lucy198204(出来混,总是要还的)2006-07-04 16:51:47 在 .NET技术 / C# 提问

class   Class1  
          {  
                  public   int   a;  
                  public   int   b;  
          }  
  与  
    class   Class2  
          {  
                  public   int   a;  
                  public   int   b;  
          }  
  结构一样,能不能互相转换,怎么转 问题点数:20、回复次数:15Top

1 楼mslvcat()回复于 2006-07-04 17:00:37 得分 0

可以自定义转换的。  
  建议看看msdn上的   operator   重载Top

2 楼lucy198204(出来混,总是要还的)回复于 2006-07-04 17:11:29 得分 0

不明白Top

3 楼veryhappy(wx.net)回复于 2006-07-04 17:13:55 得分 0

做一个继承,就可以强制转换了Top

4 楼mslvcat()回复于 2006-07-04 17:26:47 得分 20

class   c1  
  {  
  public   int   a1;  
  public   int   a2;  
  //   define   operator   double  
  public   static   implicit   operator   c2(c1   temp)  
  {  
  c2   c2Object   =   new   c2();  
  c2Object.a1   =   temp.a1;  
  c2Object.a2   =   temp.a2;  
  return   c2Object;  
  }  
  }  
   
  class   c2  
  {  
  public   int   a1;  
  public   int   a2;  
   
  //   define   operator   double  
  public   static   implicit   operator   c1(c2   temp)  
  {  
  c1   c1Object   =   new   c1();  
  c1Object.a1   =   temp.a1;  
  c1Object.a2   =   temp.a2;  
  return   c1Object;  
  }  
   
  }Top

5 楼mslvcat()回复于 2006-07-04 17:28:08 得分 0

定义上边两个类后可以执行:  
  c1   cc1   =   new   c1();  
  cc1.a1   =   10;  
  cc1.a2   =   20;  
   
  c2   cc2   =   cc1;  
   
  这时cc2.a1   =   10       cc2.a2   =   20Top

6 楼mslvcat()回复于 2006-07-04 17:30:43 得分 0

这是隐式转换。  
  将关键字implicit   变成   explicit就是显示转换。    
  即   c2   cc2   =   cc1报错。   c2   cc2   =   (c2)c1   正确  
  Top

7 楼mmens(快乐中前行!)回复于 2006-07-04 17:35:44 得分 0

不可以显示转换。可以模仿.net中的copy方法。  
  也就是通过给类变量赋值来转换。Top

8 楼lucy198204(出来混,总是要还的)回复于 2006-07-04 17:36:53 得分 0

谢谢.好了,能不能再问一个,WEBSERVICE里的一个自定义类,在WINFORM中怎么引用Top

9 楼mslvcat()回复于 2006-07-04 17:43:02 得分 0

直接在winform的引用上点右键,添加web引用即可!Top

10 楼lucy198204(出来混,总是要还的)回复于 2006-07-04 17:48:17 得分 0

这样添加只有SERVICE   一个类可见  
   
  自定义的类看不见Top

11 楼mslvcat()回复于 2006-07-04 17:59:52 得分 0

应该就是这样。  
  你可以把自定类中需要暴露的内容放到service类里Top

12 楼diandian82(点点(nothing))回复于 2006-07-04 18:15:27 得分 0

系统是无法转换的,不管是显示的还是隐士的,因为系统认为那根本是两个没有任何关系的类,即使它们的结构是一样的。除非你自己定义转换方法,比如上面的重载转换操作运算符。Top

13 楼lucy198204(出来混,总是要还的)回复于 2006-07-04 18:28:10 得分 0

using   System;  
  using   System.Web;  
  using   System.Web.Services;  
  using   System.Web.Services.Protocols;  
   
  [WebService(Namespace   =   "http://tempuri.org/")]  
  [WebServiceBinding(ConformsTo   =   WsiProfiles.BasicProfile1_1)]  
  public   class   Service   :   System.Web.Services.WebService  
  {  
          public   Service   ()   {  
   
                 
                  //InitializeComponent();    
          }  
   
          [WebMethod]  
          public   myclass     HelloWorld()   {  
                  myclass   m   =   new   myclass();  
                  m.a   =   "001";  
                  m.b   =   "lucy";  
                  return   m   ;  
          }  
           
  }  
  public   class   myclass   //:   System.Web.Services.WebService  
  {  
          public   string   a;  
          public   string   b;  
           
       
          public   string   add(int   a,   int   b)  
          {  
                  return   (a   +   b).ToString();  
          }  
   
  }  
   
  为什么在WINFORM   里只能用到MYCLASS.A   ,MYCLASS.B   而不能用到MYCLASS.ADD  
  Top

14 楼lucy198204(出来混,总是要还的)回复于 2006-07-04 19:25:21 得分 0

好像是应该先序列化,但是怎么做呢,Top

15 楼lucy198204(出来混,总是要还的)回复于 2006-07-05 09:35:38 得分 0

?Top

相关问题

关键词

得分解答快速导航

  • 帖主:lucy198204
  • mslvcat

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo