如何重载单个变量的TOSTRING方法 C#中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何重载单个变量的TOSTRING方法 C#中相关的知识,希望对你有一定的参考价值。
可以重载一个类的TOSTRING 方法,那么可以重载一个变量的吗?
嗯,再问一下,那么方法里面有没有TOSTRING方法?如果有可以重载吗?
比如VOID Q()里面有TOSTING方法吗?
你的变量总有个类型吧
int
string
DateTime
你的变量的ToString方法不就是这个类型的ToString
说白了不还是“重载一个类的TOSTRING 方法”
方法?怕是不行吧 参考技术A 恩恩 好像是
方法“ToString”没有重载需要 1 个参数
【中文标题】方法“ToString”没有重载需要 1 个参数【英文标题】:no overload for method "ToString" takes 1 arguments 【发布时间】:2012-02-23 20:36:51 【问题描述】:我有一个数据阅读器来读取数据库中的数据。 我正在从销售表中读取 TotalPrice。 我想将总价格显示为小数点后 2 位。
代码是一些链接:
TotalPrice.Text = myReader["TotalPrice"].ToString("N2");
但是我遇到了这个错误: 代码有什么问题?
【问题讨论】:
TotalPrice 列是什么类型的? 【参考方案1】:假设 TotalPrice 是 Decimal 列,并且 myReader 是 DataReader:
TotalPrice.Text = myReader.GetDecimal(myReader.GetOrdinal("TotalPrice")).ToString("N2");
这里的想法是 myReader 的索引器(您在调用 myReader["TotalPrice"]
时使用的)返回一个对象。它必须这样做,因为它在编译时不知道该列是什么类型。通过使用.GetDecimal()
,您可以确保返回一个 Decimal 值或错误。
采用格式字符串的 .ToString
重载是在 Decimal 上声明的,而不是在 Object 上声明的。对象的 .ToString
不带任何参数。
对 GetOrdinal 的内部调用返回给定名称的字段索引 - 如果您在循环中为多个数据行执行此操作,您可能希望将其缓存在变量中。
【讨论】:
【参考方案2】:String.Format() 可以解决问题。 F2 是 2 位小数的定点表示法。
TotalPrice.Text = string.Format("0:F2", (double)myReader["TotalPrice"]);
【讨论】:
以上是关于如何重载单个变量的TOSTRING方法 C#中的主要内容,如果未能解决你的问题,请参考以下文章