gpt4 book ai didi

C# 隐式运算符和 ToString()

转载 作者:太空狗 更新时间:2023-10-29 20:55:44 26 4
gpt4 key购买 nike

我正在创建自己的类型来表示 css 值(例如像素,例如 12px )。为了能够加/减/乘/...我的类型和整数,我定义了两个隐式运算符和整数。除了一件事,一切都很好。如果我写:

CssUnitBase c1 = 10;
Console.WriteLine(c1);

我得到的是“10”而不是“10px”——使用隐式转换为 int 而不是 ToString() 方法。我怎样才能防止这种情况发生?

最佳答案

是的,有一个到 int 的隐式转换,WriteLine(int) 的重载比 WriteLine(object) 更具体,所以它会使用它。

您可以显式调用WriteLine(object)重载:

Console.WriteLine((object)c1);

... 或者您可以自己调用 ToString,这样调用 Console.WriteLine(string):

Console.WriteLine(c1.ToString());

... 或者您可以删除对 int 的隐式转换。它对你有多大用处?我通常不赞成对这类事情进行隐式转换......(当然,如果你真的愿意,你可以保留 from int 的隐式转换。 )

关于C# 隐式运算符和 ToString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3100572/

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