C# 怎么将类作为参数传递?

例如:我定义了实体类X1,X2,X3;还定义了classA{publicstringret{get;internalset;}publicstringmsg{get;in... 例如:我定义了实体类X1,X2,X3;还定义了

class A
{
public string ret { get; internal set; }
public string msg { get; internal set; }
public X1 data { get; internal set; }
}

class B
{
public string ret { get; internal set; }
public string msg { get; internal set; }
public X2 data { get; internal set; }
}

class C
{
public string ret { get; internal set; }
public string msg { get; internal set; }
public X3 data { get; internal set; }
}

能不能将A、B、C三个类合成一个实体类,而将X1、X2、X3作为参数在合并类中的构造函数传入。
如可否这样:
class D
{
System.Type X;
public D(System.Type type)
{
this.X=type;
}
public string ret { get; internal set; }
public string msg { get; internal set; }
public X.GetClass Data { get; internal set; }
}
当然啦,X.GetClass是不存在的,不知能不能类似这样的方法实现?
展开
 我来答
千锋教育
2016-01-08 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

参考下面代码:

public static void GetResult(Person p)
{
Console.WriteLine(p.b);
}
public class Person
{
public int a { get; set; }
public string b { get; set; }
}
kucai_3000
推荐于2017-09-16 · TA获得超过220个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:238万
展开全部
个人觉得有很多种方法:

1、用Object类:

class ABC 
{
public string ret { get; internal set; }
public string msg { get; internal set; }
public Object data { get; internal set; }
}

 2、用dynamic

class ABC
{
public string ret { get; internal set; }
 
public string msg { get; internal set; }
 
public dynamic data { get; internal set; }
}

 3、用泛型

class ABC<T>
{

public string ret { get; internal set; }

public string msg { get; internal set; }

public T data { get; internal set; }

}

 就你的情况,个人推荐用泛型。

追问
Very good!用泛型能解决我的问题,因为在调用合并类的时候要确定 data的类型。看来我该多学学泛型的使用,非常感谢!!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洛蝶纳昭
2019-11-21 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:844万
展开全部
c#中数组是可以做为参数传递的,c#中传值可以用form与form之间传参数的方法来实现。只要在第二个form里的默认构造函数添加具体的参数,然后在第一个form里具体实现传值的事件里添加form2
frm2=new
form2(数组参数);frm2.showdialog();第二个form加载后,就可以在第二个form添加变量获取传递的参数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱的献言策
2013-09-16 · TA获得超过405个赞
知道小有建树答主
回答量:201
采纳率:58%
帮助的人:61.5万
展开全部
按照你下面的方法你是想用Entity Framework来实现了,将A、B、C这这三类合并成一个实体类对C#的编程规范来说是不科学的。你的设计本身就是在类里面封装的属性,他们是可以直接实例化被调用的。
从你的描述来看X1、X2、X3三个实体类可以按照上面回答的这样“多个类合一个实例的话,可以用多重继承的方式,但是要这三个类有附属关系”这个说法我想合理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qubo8816
2013-09-16 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:119万
展开全部
做为参数应该传递的话,首先应该满足是一个实例、一个对象吧

传递类需要把类实例化之后再传参。。

多个类合一个实例的话,可以用多重继承的方式,但是要这三个类有附属关系

纯属C#小白意见,说错莫怪
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式