我有两个构造函数,接受不同类型的参数:
public someClass(String s) {
// the string is parsed to an int array.
int[] array = doSomething(s);
this(array);
}
public someClass(int[] array) {
doSomethingElse(array);
}
然而,在第一个构造函数上,我得到了"方法名称是预期的"。有没有一种方法可以让构造函数在执行其他操作后调用另一个构造函数,或者这只是C#的限制?
只要doSomething
是静态的。
class someClass
{
public someClass(String s)
: this(doSomething(s))
{ }
public someClass(int[] array)
{
doSomethingElse(array);
}
static int[] doSomething(string s)
{
//do something
}
}
你不能那样做。但是你可以写
public SomeClass(string s) : this(doSomething(s)){}
只要int[] doSomething(string)
是static
。
根据从另一个调用一个构造函数
public class SomeClass
{
public SomeClass(string s) : this(dosomething(s))
{
}
public SomeClass(int[] something)
{
}
private static int[] dosomething(string)
{
return new int[] { };
}
}
我会使用静态方法来实现您想要的