Is string a value type or a reference type?
Answers were Sorted based on User's Feedback
Answer / gulrez alam
String is Referenced Type and stored in the Heap....
Is This Answer Correct ? | 55 Yes | 2 No |
Answer / tarun kumar
String in .NET id 'Reference Type'.The reason is quite
simple.All classes in the .NET Environment are 'Reference
Type' & 'String' is a Class in .NET (not DataType as in VB
6.0)
Is This Answer Correct ? | 40 Yes | 5 No |
Answer / 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 |
Answer / sheetal shivdas
run this code : to see that string is reference type
SByte a = 0;
Byte be = 0;
Int16 c = 0;
Int32 d = 0;
Int64 ee = 0;
String s = "";
Exception ex = new Exception();
object[] Types = { a, be, c, d, ee, s,ex };
foreach (object obj in Types)
{
string type;
if (obj.GetType().IsValueType)
type = "Value Type";
else
type = "Reference Type";
Response.Write(type);
}
Is This Answer Correct ? | 32 Yes | 5 No |
string is a reference type.
string str = "hello";
char x = str[1];
here what we do is handling the memory.
which type allows you to handle the memory is reference types.
Is This Answer Correct ? | 26 Yes | 1 No |
Answer / albn
String is a reference type. If two string variable has the
same string it stored in the same heap memory address.
eg in VB.Net
Dim a as string="Hello"
dim b as string="Hello"
both variable refer to same memory address. As strings are
immutable reference type you can't get the change in one
variable to another.
Is This Answer Correct ? | 19 Yes | 4 No |
Answer / micho
Strings are reference types, but they are special reference
types because they are made to behave like value-types.
For instance, after assigning a string to another, the two
strings remain independent. Likewise, you compare strings
with the = operator (because it is overloaded).
You can open the MSDN and see that strings are classes (ie,
reference-types).
Is This Answer Correct ? | 0 Yes | 1 No |
what are Httpmodule and HttpHandler?
What property must you set, and what method must you call in your code, in order to bind the data from some data source to the Repeater control?
What is custom control. What is the difference between custom control and user control ?
What is the DLL Hell Problem?
How do we assign page-specific attributes?
how can i insert array values and retreive in asp.net
How to create multi language website in asp.net mvc? : Asp.Net MVC
How to make sure that contents of an updatepanel update only when a partial postback takes place (and not on a full postback)?
Why cyclomatic complexity is important?
How will u decide when to use caching and when to use viewstate?
What is the difference between dispose() and finalize()?
What is viewstate? In which event of the page life cycle, is the viewstate available?