问题描述
我建了一个结构体:主要功能是按提交按钮之后调用create函数,将已经赋值的两个结构体传到create函数来处理,但是我在调用create函数的传值是提示,类型不匹配,不知道错在哪里?以下是代码:protectedvoidButton1_Click(objectsender,EventArgse){abp_ab=newab();ab_dp_ad=newab_d();p_ab.name_1="abc";p_ab.age_1=12;p_ad.pn="def";p_ad.p_num=23;stringls1=create(p_ab,p_ad)}publicstructab{publicstringname_1;publicintage_1;}publicstructab_d{publicstringpn;publicintp_num;}在一个struct.cs文件,里面定义了一个create函数和另外两个结构体用来接收的:publicstaticstringcreate(Mainm1,Main_dd1){return"bcd";}publicstructMain{publicstringname;publicintage;}publicstructMain_d{publicstringproduct_name;publicintproduct_num;}这样做什么不对呢???
解决方案
解决方案二:
create明明需要Main和Main_d类型,你给的是ab和ab_d类型,怎么可能对?
解决方案三:
但Main与Main_d是结构体,但ab与ab_d都是结构体,两个都是同一类型,ab与ab_d是第一个页面用来赋值的,然后将ab与ab_d结构体的值传到Main与Main_d来处理的,就是说Main与Main_d用来是接收的,我的做法不对吗?如果不对,应该怎么改?
解决方案四:
ab和abd不是一回事,你只有逐个字段赋值
解决方案五:
你是认为Main和ab都是struct就是同样的类型?那是不是所有的class也都是一样的了呢?
解决方案六:
我明白了!其实不用再建ab和ab_d,先定义对象:maina1=newmain(),然后赋值:a1.name="abc",再用create(a1)传递过去,这样我测试是成功的.
解决方案七:
我靠,这是天生就混淆好的代码呀。。