[ Dragan BL @ 12.09.2008. 13:09 ] @
Kao u naslovu sto stoji koja je stvarna razlika i neki primjer kad jedno koristiti a kada drugo?

Ja gde god da sam trazio pise da nema razlike typeof(string) == typeof(String) == typeof(System.String).

Hvala
[ mmix @ 12.09.2008. 13:24 ] @
potpuno je identicno.
[ Dragan BL @ 12.09.2008. 14:53 ] @
Super identicno je to mi je jasno. Ali cemu onda oba izraza sto nije jedan? Kada jedno upotrebiti, a kada drugo? Mora biti nesto. :)
[ Shadowed @ 12.09.2008. 14:55 ] @
Razlika je sto je String klasa a string kljucna rec (koja je mapirana na String klasu:) ).
Pretpostavljam da je razlog to sto su hteli da naprave C# kao jezik koji ne mora obavezno biti zavistan od .net framework-a.
[ Dragan BL @ 12.09.2008. 15:15 ] @
Hvala na odogvoru malo je jasnije.

Je li znaci da je onda "string" iliti "String" referentni tip (kao NPR. Xelemnt) i ovaj kod bi trebao da ispise "promjena":

Code:

String test="pocetak";
String novi=test;
test="promjena";
Console.WriteLine(novi);


Ali on ispise "pocetak" ili ja nisam opet dobro shavtio ili nisam dobro ovo napisao.

Dok drugi primjer radi normalno ispise "promjena":


Code:

XElement jedan=new XElement("pocetak");
XElement dva=jedan;
jedan.Add("promjena");
Console.WriteLine(dva.ToString());


Hvala

[Ovu poruku je menjao Dragan BL dana 12.09.2008. u 17:12 GMT+1]
[ mmix @ 12.09.2008. 15:27 ] @
string je poseban tip i iako je referentan, ne ponasa se u potpunosti kao isti posto su u .NET-u stringovi immutable (nepromenljivi). Svaki put kad dodeljujes ili modifikujes string kreira se potpuno novi string, tako da posle druge linije koda novi i test su imali iste stringove (tekstualno govoreci) ali su dva razlicita stringa.

A inace, primer ti nije dobar (tj at par), da si uradio ovo sa XElement dobio bi slicnu pricu kao sa string:

Code:

XElement jedan=new XElement("pocetak");
XElement dva=jedan;
jedan = new XElement("promjena");
Console.WriteLine(dva.ToString());
[ Dragan BL @ 12.09.2008. 16:11 ] @
Hvala puno na brzim odgovorima. To je to sve jasno. :)