在C#中 ToString();是啥意思啊〉?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#中 ToString();是啥意思啊〉?相关的知识,希望对你有一定的参考价值。

比如

string text = textBox1.Text;

int len = text.Length;
textBox2.Text = len.ToString();

这个代码,直接textBox2.Text = len就可以了么,
为什么后面要加上ToString();??
那为什么最终debug以后
textBox2.Text 里面现实的是int 型

而不是字符串类型??

ToString()指转换成字符串!

这里len是int型不能直接赋值给textBox2.Text-(string型),不写ToString()的话会报错,因为.NET不能隐式转换它们。

类似的当在文本框中输入一个数字比如5时,也要转换它成int在赋给其他int变量!

例如:int temp=int.parsetInt(textBox2.Text.trim());debug以后textBox2.Text是int是因为len是计算出来的int型变量!

扩展资料:

简介

public String toString()返回该对象的字符串表示。

通常,toString 方法会返回一个“以文本方式表示”此对象的字符串,结果应是一个简明但易于读懂的信息表达式,建议所有子类都重写此方法。

Object类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at标记符“@”和此对象哈希码的无符号十六进制表示组成。

返回:该对象的字符串表示形式。

参考资料来源:百度百科-toString

参考技术A ToString()是Object类的方法!值要是继承Object的类都有!
它的作用是将其他类型转换成字符串类型!

int型转换成字符串时,C#编译器会自动帮你拆箱(也就数字类型转换引用类型)!但反过来装箱(引用类型转换数字类型),要手动去转换一下!否则报错!

textBox的Text属性的值是字符串类型的!!!!本回答被提问者采纳
参考技术B ToString()指转换成字符串!这里len是int型不能直接赋值给textBox2.Text-(string型),不写ToString()的话会报错,因为.NET不能隐式转换它们。类似的当你在文本框中输入一个数字比如5时你也要转换它成int在赋给其他int变量!例如:int temp=int.parsetInt(textBox2.Text.trim());
debug以后textBox2.Text是int是因为len是计算出来的int型变量!
参考技术C ToString() 其实你可以从函数的字面意思来理解就是转成string类型,textBox2.Text需要一个字符串类型的值,所以不能直接用int的len值。清楚否? 参考技术D 把其他类型的数据 转换成字符串类型的数据

在 C# 中函数名前的波浪号是啥意思?

【中文标题】在 C# 中函数名前的波浪号是啥意思?【英文标题】:What does the tilde before a function name mean in C#?在 C# 中函数名前的波浪号是什么意思? 【发布时间】:2010-09-16 08:45:17 【问题描述】:

我正在查看一些代码,它有这样的声明:

~ConnectionManager()

    Dispose(false);

该类实现了IDisposable 接口,但我不知道这是否是波浪号(~)用于的一部分。

【问题讨论】:

【参考方案1】:

~ 是析构函数

    析构函数是自动调用的,不能显式调用。 不能重载析构函数。因此,一个类最多可以有一个析构函数。 不继承析构函数。因此,一个类除了可以在其中声明的析构函数之外没有其他析构函数。 析构函数不能与结构一起使用。它们仅与类一起使用。 当任何代码不再可能使用该实例时,该实例就有资格销毁。 可以在实例符合销毁条件后的任何时间执行实例的析构函数。 当一个实例被销毁时,其继承链中的析构函数会按从最多派生到最少派生的顺序被调用。

敲定

在 C# 中,Finalize 方法执行标准 C++ 析构函数会执行的操作。在 C# 中,您不将其命名为 Finalize - 您使用 C++ 析构函数语法,即在类名之前放置一个波浪号 (~) 符号。

丢弃

最好在类用户可以显式调用的Close()Dispose() 方法中处理对象。 Finalize(析构函数)由 GC 调用。

IDisposable 接口告诉全世界你的类持有需要释放的资源,并为用户提供释放它们的方法。如果您确实需要在类中实现终结器,您的 Dispose 方法应该使用GC.SuppressFinalize() 方法来确保抑制实例的终结。

使用什么?

显式调用析构函数是不合法的。垃圾收集器将调用您的析构函数。如果您确实要处理想要尽快关闭和处置的宝贵非托管资源(例如文件句柄),则应该实现 IDisposable 接口。

【讨论】:

我不知道过去是怎样的。但是现在析构函数是继承的。查看此链接以获取更多信息(查看末尾的示例):msdn.microsoft.com/en-us/library/66x5fx1b.aspx @RononDex 在您链接到状态的页面的第 3 点 “无法继承终结器”,这与您的评论相矛盾。诚然,这有点令人困惑,因为虽然它们不能被继承,但 Finalize 方法被递归调用继承链中的所有实例,从派生最多的实例到派生最少的实例” .请注意,这与您从可继承的析构函数获得的行为不同 @MarkAmery 啊我明白了,所以与继承的东西相比,它们基本上是以相反的顺序被调用的? 那么如果一些作为反编译器结果的C#代码有这样的方法,它可以安全地删除吗?这似乎得到了它有 0 个引用的事实的证实【参考方案2】:

这是finalizer。老实说,您应该很少需要编写终结器。你真的只需要写一个,如果:

您可以直接访问非托管资源(例如通过IntPtr),但您不能使用SafeHandle,这样会更容易 您正在一个未密封的类中实现IDisposable。 (我的偏好是密封类,除非它们是为继承而设计的。)在这种情况下,终结器是规范 Dispose 模式的一部分。

【讨论】:

【参考方案3】:

用于表示类的析构函数。

【讨论】:

它们都是正确的,具体取决于您阅读的 C# 规范。最新的 MS 版本(统一 C# 3.0)将它们称为析构函数(例如第 10.13 节),但 ECMA 规范将它们称为终结器。 @1800INFORMATION:句法元素被恰当地称为析构函数。如果一个类有析构函数,C# 编译器将自动生成一个终结器,其中包括一个通常无用的 try/finally 块,以确保调用父 Finalize 方法。大多数适用于析构函数的事情都适用于终结器,反之亦然,但这些词的含义略有不同。【参考方案4】:

和C++一样,都是析构函数;但是在 C# 中,您不会显式调用它,而是在垃圾收集器收集对象时调用它。

【讨论】:

【参考方案5】:

见Destructors (C# Programming Guide)。但是请注意,与 C++ 不同,程序员无法控制何时调用析构函数,因为这是由垃圾收集器决定的。

【讨论】:

【参考方案6】:

~ 通常代表一个解构器。它在对象死亡之前运行。

Here is a description of C# deconstructors i found

【讨论】:

正确的术语应该是析构函数/终结函数,而不是解构函数。 Deconstructor 表示解构构造函数的语法。

以上是关于在C#中 ToString();是啥意思啊〉?的主要内容,如果未能解决你的问题,请参考以下文章

c#中 Double num1 = Convert.ToDouble(this.textBox1.Text.ToString())是啥意思,里面的()是啥意思

C#中DllImport是啥意思啊

Yield To Call 是啥意思啊啊?

VB程序中STEP是啥意思啊

C# udp是啥意思啊,是干啥的啊

C#中ref的作用是啥?