Answer Posted / benjamin janecke
String is a reference type but it behaves somewhat like a
value type. So it's a bit tricky and many developers don't
know it.
Great care should be taken when doing excessive string
manipulations with the String class. As already posted,
each String is read only and can never be changed. Thus,
every manipulation creates a new instance (and causes the
garbage collector to remove old ones) which can have a
dramatic performance impact on an application. Therefore,
always use the StringBuilder class in these scenarios,
which holds only one representation of a string in memory
and performs any changes directly to that memory block.
Btw. for those who don't belive String is a reference type,
just refer to MSDN or run ILDASM und load the mscorlib.dll
module from the .NET Framework. Then go to System.String
and u'll notice it's directly inherited from System.Object -
contrary to, for instance, the System.Byte class which is
inhertied from System.ValueType, meaning Byte is a value
type, String is not.
| Is This Answer Correct ? | 36 Yes | 2 No |
Post New Answer View All Answers
How many languages are supported by .NET at present time?
How to turn off cookies for a page?
What is asp net objects?
Can you explain architecture of your project ?
Is react a template engine?
In order to get assembly info which namespace we should import?
Define viewstate in .net?
how to write html code with ssl
How do you declare delegates and are delegates and events one and the same and explain how do you declare delegates and invoke them ?
How to make paging concepts in datagrid in ASP.NET?
What is the difference between server-side scripting and client-side scripting?
What are the page life cycle events?
How do I publish my asp.net application to my isp's web server?
Is LINQ performance wise better or using sqlcommand?
Explain client-side scripting?