确实很基础的东西 我来说说吧,这个是构造函数,假设有类a,b class a public a(string a) {} public a() {} class b:a public b(string b) {} //↓这个等同于public b(string b):base(),所以类a 不能没有public a() public b(string b2,int i):base(b2){}//↓这个的意思就是在调用public b(string b2,int i)前先调用父类的public a(string a),即父类的东东 其实还有个符号:this,既然base是调父类的,那么this就是调自己的,所以说您的问题的答案就是: 这个类至少有两个构造函数即 public ArgParser(String[] switchSymbols) public ArgParser(switchSymbols, false, new string[] { "/", "-" }) 其中的ArgParser(String[] switchSymbols) 被调用之前会先调用同一个类中的构造函数public ArgParser(switchSymbols, false, new string[] { "/", "-" })
参数有三个:
用户提供的switchSymbols
默认的false和string类型参数
ArgParser(string[])
和ArgParser(int,bool,string[]) 当用第一个构造函数初始化对象时,这个构造函数会自动调用另一个构造函数。谁让C#不支持默认参数值呢?
我来说说吧,这个是构造函数,假设有类a,b
class a
public a(string a)
{}
public a()
{}
class b:a
public b(string b) {} //↓这个等同于public b(string b):base(),所以类a 不能没有public a() public b(string b2,int i):base(b2){}//↓这个的意思就是在调用public b(string b2,int i)前先调用父类的public a(string a),即父类的东东
其实还有个符号:this,既然base是调父类的,那么this就是调自己的,所以说您的问题的答案就是:
这个类至少有两个构造函数即
public ArgParser(String[] switchSymbols)
public ArgParser(switchSymbols, false, new string[] { "/", "-" })
其中的ArgParser(String[] switchSymbols) 被调用之前会先调用同一个类中的构造函数public ArgParser(switchSymbols, false, new string[] { "/", "-" })