C# 返回HelpText类而不是字符串会意外地工作
我正在使用C# 返回HelpText类而不是字符串会意外地工作,c#,implicit-conversion,C#,Implicit Conversion,我正在使用CommandLine ParserAPI来处理应用程序的命令行参数 在中,有一段代码: [HelpOption] public string GetUsage() { return HelpText.AutoBuild(this, (HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current)); } 它确实可以编译 但是,HelpText.AutoBuild()的返回值实际
CommandLine Parser
API来处理应用程序的命令行参数
在中,有一段代码:
[HelpOption]
public string GetUsage() {
return HelpText.AutoBuild(this, (HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current));
}
它确实可以编译
但是,HelpText.AutoBuild()的返回值实际上是HelpText实例,它直接继承对象。
此外,AFAIK,string是一个密封类,不能继承
这怎么可能呢?这种魔力是由一个隐式运算符字符串所创造的。
帮助文本
类肯定有一个。
示例用法:
public class A
{
......
public override String ToString()
{
return "AAA" ;
}
public static implicit operator string (A a)
{
return a.ToString() ;
}
}
它允许您执行以下操作:
string aString = new A() ; // new A().ToString() is called by the implicit operator
当然,你可以做到:
public string MethodMan()
{
return new A();
}