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是不存在的,不知能不能类似这样的方法实现? 展开
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是不存在的,不知能不能类似这样的方法实现? 展开
6个回答
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; }
}
展开全部
个人觉得有很多种方法:
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的类型。看来我该多学学泛型的使用,非常感谢!!!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c#中数组是可以做为参数传递的,c#中传值可以用form与form之间传参数的方法来实现。只要在第二个form里的默认构造函数添加具体的参数,然后在第一个form里具体实现传值的事件里添加form2
frm2=new
form2(数组参数);frm2.showdialog();第二个form加载后,就可以在第二个form添加变量获取传递的参数了。
frm2=new
form2(数组参数);frm2.showdialog();第二个form加载后,就可以在第二个form添加变量获取传递的参数了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照你下面的方法你是想用Entity Framework来实现了,将A、B、C这这三类合并成一个实体类对C#的编程规范来说是不科学的。你的设计本身就是在类里面封装的属性,他们是可以直接实例化被调用的。
从你的描述来看X1、X2、X3三个实体类可以按照上面回答的这样“多个类合一个实例的话,可以用多重继承的方式,但是要这三个类有附属关系”这个说法我想合理。
从你的描述来看X1、X2、X3三个实体类可以按照上面回答的这样“多个类合一个实例的话,可以用多重继承的方式,但是要这三个类有附属关系”这个说法我想合理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做为参数应该传递的话,首先应该满足是一个实例、一个对象吧
传递类需要把类实例化之后再传参。。
多个类合一个实例的话,可以用多重继承的方式,但是要这三个类有附属关系
纯属C#小白意见,说错莫怪
传递类需要把类实例化之后再传参。。
多个类合一个实例的话,可以用多重继承的方式,但是要这三个类有附属关系
纯属C#小白意见,说错莫怪
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询