为什么我需要在C#中使用字符串"out"?

Ela*_*nda -4 c#

我知道string是C#中的值类型.我理解C#中的所有内容都是按值传递的.

但如果它是一种价值类型,那么就不需要'出'或'参考',对吧?

Jon*_*eet 7

String是其他人指出的引用类型(类).它只是它是不可变的,这使得它有时在某些方面感觉像一个值类型.

您可以通过引用或值传递字符串参数,就像使用任何其他参数一样.绝对清楚这两个概念之间的区别是值得的.我有两篇关于这个主题的文章:

值得熟悉这个主题(当然还有阅读除我以外的文章) - 理解引用类型和值类型之间的区别绝对是C#的关键,理解参数传递也是如此(甚至简单的赋值语句意味着什么).


Ray*_*Ray 6

字符串不是值类型.这是一种不可变的密封参考类型.

字符串上MSDN页面可能值得一读.