WinForm设计时关于文字连接的问题

问题描述

看的C#入门经典,448页源码是如下所示:toolStripStatusLabelText.Text="Numberofcharacters:"+richTextBoxText.Text.Length;

疑问:字符串相加时不是要求几个几个均为字符串时才能相加吗?为什么不是toolStripStatusLabelText.Text="Numberofcharacters:"+richTextBoxText.Text.Length.ToString();

还是因为什么重载,关于重载,我如何察看当前语句所设计的函数是重载的?新手,谢谢大家热心帮忙。

解决方案

解决方案二:
String类型有一个叫做Concat(object,object)的操作,c#编译器在遇到这种表达式时会编译为调用它的连接操作。而假如是字符串的拼接,就直接编译为.net的字符串拼接,而不会调用Concat方法。
解决方案三:
嗯,sorry,刚刚编译了一下重新看了看编译结果。假如是字符串拼接,那么c#编译结果仍然会调用Concat,但是是调用Concat(string,string)的,而不是(object,object)签名的那个Concat。
解决方案四:
引用楼主zsm7321400的回复:

关于重载,我如何察看当前语句所设计的函数是重载的?新手,谢谢大家热心帮忙。

同一个类型(包括子类型)的相同名称的方法,有不同的参数签名,这就是重载。因此看接口格式来判断重载。如果你要看内部实现机制,那么需要读源代码。包括使用vs自动打开开源的.netframework源代码,或者使用任何一种逆向工程工具。我们可以看看重载了的Concat的其中一个publicstaticstringConcat(objectarg0,objectarg1){if(arg0==null){arg0=Empty;}if(arg1==null){arg1=Empty;}returnConcat(arg0.ToString(),arg1.ToString());}

解决方案五:
引用2楼sp1234的回复:

嗯,sorry,刚刚编译了一下重新看了看编译结果。假如是字符串拼接,那么c#编译结果仍然会调用Concat,但是是调用Concat(string,string)的,而不是(object,object)签名的那个Concat。

编译器会把字符串常量连起来没错吧,对变量或者不同的类型才会调用concat
解决方案六:
引用4楼KarasCanvas的回复:

编译器会把字符串常量连起来没错吧,对变量或者不同的类型才会调用concat

楼主给出的第二个参数是变量,而不是字符串常量。
解决方案七:
嗯,我所说的是两个变量情形下的问题。对于两个字符串常量的问题,与要解决的当前问题其实并没有什么冲突。只不过是(将来)要不要“抠”到那一个特殊的优化情形的问题。

时间: 2024-09-20 04:06:49

WinForm设计时关于文字连接的问题的相关文章

WinForm控件开发总结(十一) 调试控件的设计时行为

前面的一些文章绝大部分都是要讲控件的设计时的行为,既然涉及到这么多的设计时行为的代码编写 ,那么就有必要就一下如何来调试控件的设计行为. 调试控件的设计时行为和调试DLL的方式非常的相似,因为DLL是不能够单独运行的,而一般的控件也 会在一个DLL里.当然如果你不考虑类的可复用性而把控件写在一个Windows Application里面也无可厚非 ,这样调试倒也变的简单了.但是我们还是要考虑更通常的情况.一般来说,我们调试DLL时,都是创建 一个可独立运行的应用程序,在这个应用程序里引用你希望调

网页制作高手进阶:网页设计中的文字运用

设计|网页|网页设计  如今,互联网越来越走近我们的生活,网上冲浪也渐渐成为我们生活不可缺少的一部分.网络世界五彩缤纷,涌现出大量优秀精美的网页.大量网络信息的呈现,无非就是通过文本.图像.Flash动画等,其中, 文本是网页中最为重要的设计元素.对于网页设计初学者而言,了解和掌握网页设计中的文字排版设计就显得尤为重要,下面笔者想谈谈一己之见.     文字的格式化     1.字号.字体.行距字号大小可以用不同的方式来计算,例如磅(Point)或像素(Pixel).因为以像素技术为基础单位打印

为ASP.NET控件添加设计时支持

asp.net|控件|设计 简介 Microsoft ASP.NET 为开发人员提供了一种适用于 Web 开发的.功能最为强大的新工具:服务器控件.服务器控件使开发人员能够在短时间内开发出响应速度快而且功能强大的 Web 应用程序,所需的时间与在典型的 ASP 中创建类似应用程序的时间差不多. ASP.NET 服务器控件之所以能够提供生产效率,关键原因之一在于它为 Microsoft Visual Studio .NET 开发环境中的服务器控件提供了丰富的设计时支持.开发人员可以将服务器控件从

WPS合并多行文字连接成一行

从网上下载的数据格式经常是一项数据一行,而我们经常需要把一大篇文本中的内容每两行文字连接成一行,有时甚至需要把更多的行连接成一行.手工复制粘贴显然是很麻烦的,其实在WPS文字2007中要处理这类问题是很简单的.下面就用WPS 2007个人版的WPS文字来介绍一下具体操作. 1.启动WPS文字2007,单击菜单"文件/打开",在打开窗口中选择文件类型为"所有文件(*.*)",然后直接找到要处理的TXT文本文件打开. 2.按"Ctrl+A"组合键选中

产品设计时你考虑爸爸妈妈了吗?

  前段时间放假回家难得清闲,奇怪还不到一周就坐不住了,左顾右盼百无聊赖,心里痒滋滋的--原来是网瘾犯了--为了说服父母同意牵网,我承诺他们,保证他们学会上网! 我的计划是:一周之内,教会妈妈浏览网页,教会爸爸上网斗地主. 先剧透一下结局.一周下来,妈妈怒了.在我第500次嘟囔"怎么还学不会"的时候,她吼道:"我这人完全不笨!要么电脑不好,要么是你教得不好,总之是你们不好!"爸爸在这时选择了闪躲,他默默的守在角落端着iPhone玩斗地主. 用户体验如此糟糕,是该反省

一个Form中100个label设计时、运行时刷新都很慢,怎么办啊,急

问题描述 在一个Form中放置了100个Label,结果在设计时和在运行时界面刷新都很慢,就像慢镜头一样,怎么办啊!!!!大家指教.. 解决方案 解决方案二:100个label显示的是什么?是不是有一些规律,减少一些.关注解决方案三:100Label为10*10矩阵,每个Label要想用一定的事件解决方案四:换成在Paint事件中绘制文字解决方案五:不行的,label要响应事件,绘制文字怎么响应啊,各位大哥帮忙啊!!!!解决方案六:还是绘制,然后写个鼠标单击的事件,通过判断鼠标点击的坐标确定是那

高级技巧之网页设计中的文字运用

如今,互联网越来越走近我们的生活,网上冲浪也渐渐成为我们生活不可缺少的一部分.网络世界五彩缤纷,涌现出大量优秀精美的网页.大量网络信息的呈现,无非就是通过文本.图像.Flash动画等,其中, 文本是网页中最为重要的设计元素.对于网页设计初学者而言,了解和掌握网页设计中的文字排版设计就显得尤为重要,下面笔者想谈谈一己之见. 文字的格式化 1.字号.字体.行距 字号大小可以用不同的方式来计算,例如磅#quotel.quoter#或像素(Pixel).因为以像素技术为基础单位打印时需要转换为磅,所以,

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

原文:ActiveReports 9实战教程(2): 准备数据源(设计时.运行时) 在上讲中<ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版>,我们已经结合Visual Studio 2013搭建好了ActiveReports 9的开发环境,并完成了一个Hello World的RDL报表. 在本文,我们通过配置数据源进行报表实战,做过报表开发的报表达人知道,报表中的数据源分设计时数据源和运行时数据源. 如何理解呢? 这2类数据源,表结

高手进阶:网页设计中的文字运用

    如今,互联网越来越走近我们的生活,网上冲浪也渐渐成为我们生活不可缺少的一部分.网络世界五彩缤纷,涌现出大量优秀精美的网页.大量网络信息的呈现,无非就是通过文本.图像.Flash动画等,其中, 文本是网页中最为重要的设计元素.对于网页设计初学者而言,了解和掌握网页设计中的文字排版设计就显得尤为重要,下面笔者想谈谈一己之见.     文字的格式化     1.字号.字体.行距     字号大小可以用不同的方式来计算,例如磅#quotel.quoter#或像素(Pixel).因为以像素技术为基