gpt4 book ai didi

c# - 抽象类中的隐式转换

转载 作者:行者123 更新时间:2023-12-04 02:27:36 27 4
gpt4 key购买 nike

我有一个抽象对象 Arg 是否有机会像这样使用它:

Arg<string> Title = "Big Title";

Console.WriteLine(Title);

输出应该是:“大标题”

我可以使用隐式运算符吗?

基类是:

public abstract class Arg<T>
where T: class,new()
{

public object Value { get; set; }

public Arg()
{
Value = new T();

}
public static implicit operator T(T t)
{
return t or Value ;
}
public override string ToString()
{
return Value.ToString();
}
}

欢迎任何想法。提前致谢

最佳答案

您将无法构造抽象 类。但是,您可以使其成为非抽象的并创建对它的隐式转换。例如:

public class Arg<T>
{
public Arg()
{
Value = default(T);
}

public T Value { get; set; }

public static implicit operator Arg<T>(T value)
{
return new Arg<T> { Value = value };
}

public override string ToString()
{
return Value?.ToString();
}
}

然后你就可以写:

Arg<string> s = "Hello, world";
Console.WriteLine(s);

关于c# - 抽象类中的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66435012/

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