gpt4 book ai didi

c# - 返回 HelpText 类而不是字符串会意外地起作用

转载 作者:行者123 更新时间:2023-12-01 19:46:02 25 4
gpt4 key购买 nike

我正在使用CommandLine Parser API 来处理应用程序的命令行参数。

sample page ,有一段代码:

 [HelpOption]
public string GetUsage() {
return HelpText.AutoBuild(this, (HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current));
}

它确实可以编译

但是,实际上 HelpText.AutoBuild() 的返回值是 HelpText 实例,它直接继承对象。而且,据我所知,string是一个密封类,不能被继承。

怎么会这样?

最佳答案

这种魔法是由隐式运算符字符串 ( See MSDN ) 实现的。 HelpText 类肯定有一个。


示例用法:

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();
}

关于c# - 返回 HelpText 类而不是字符串会意外地起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com