首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么只有当我将文本重新分配回变量时,TrimStart才能工作?

为什么只有当我将文本重新分配回变量时,TrimStart才能工作?
EN

Stack Overflow用户
提问于 2014-07-06 19:11:21
回答 3查看 132关注 0票数 0
代码语言:javascript
复制
scrollerList = new List<string>(TextExtractor.newTextWithoutLinks);
scrollerText = string.Join(Environment.NewLine, scrollerList);
combindedString = string.Join(Environment.NewLine, newText);
scroller1.TextToScroll = scrollerText;
richTextBox1.Text = combindedString;
richTextBox1.Text = richTextBox1.Text.TrimStart();
richTextBox1.Refresh();

这是一条工作路线:

代码语言:javascript
复制
richTextBox1.Text = richTextBox1.Text.TrimStart();

但如果我在做:

代码语言:javascript
复制
richTextBox1.Text.TrimStart();

不管用,我的意思是不做任何改变。

这并不是说我得到了任何异常,但有点奇怪的是,我需要为richTextBox1分配两次文本,以删除richTextBox1顶部的空行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-06 19:12:45

string是不变的--你看到的是预期的行为。像TrimStart()这样的操作将创建一个新的string,它在调用该方法时返回。

为什么不一蹴而就呢?

代码语言:javascript
复制
richTextBox1.Text = combindedString.TrimStart();
票数 2
EN

Stack Overflow用户

发布于 2014-07-06 19:14:06

TrimStart()返回一个新字符串,并对值进行修整。它不修改原始字符串:

来自http://msdn.microsoft.com/en-us/library/system.string.trimstart(v=vs.110).aspx

此方法不修改当前实例的值。相反,它返回一个新字符串,其中删除当前实例中的所有前导空格字符。

票数 1
EN

Stack Overflow用户

发布于 2014-07-06 19:15:27

它生成一个与旧字符串无关的新字符串。你必须用新的取代现有的!所以这是正确的:

代码语言:javascript
复制
richTextBox1.Text = richTextBox1.Text.TrimStart();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24599377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档