【发布时间】:2015-10-24 07:33:58
【问题描述】:
我希望类的构造函数能够传递两种类型的参数,然后在方法内部根据参数的类型做一些事情。类型为double 和String[]。该类及其构造函数类似于:
public class MyClass
{
public MyClass (Type par /* the syntax here is my issue */ )
{
if (Type.GetType(par) == String[])
{
/// Do the stuff
}
if (Type.GetType(par) == double)
{
/// Do another stuff
}
}
并且该类将以这种方式在另一个类上实例化:
double d;
String[] a;
new MyClass(d); /// or new MyClass(a);
【问题讨论】:
-
只需重载构造函数并从两者调用初始化方法。
-
我怀疑你想要
if (type == typeof(string[]))...你只想要类型,对吧,而不是类型的instance? -
@Aggressor 谢谢。这是正确的方式
-
@JonSkeet 我认为你是对的,但你能再解释一下吗?
-
那么您还需要什么解释? (不清楚你是否真的只需要按类型做事,或者你是否真的应该采用类型的 instances...)
标签: c# class types constructor parameter-passing