String nesnesi, == ve = kullanılırken bir Değer türü gibi davranır; = işleç, başvuru yerine gerçek nesne anlamına gelir.Bir String türünün bir Metoda Geçirilmesi veya C# 'da Değişken Atanması Nasıl Sağlanır?
Parametre geçirme, atama ve kopyalama hakkında ne dersiniz?
Yaylı Parametre Geçiş: başvuru türü bir yönteme geçirildiğinde, referans kopyalanır ancak altta yatan amacı, aynı kalır.
Bu, C# ile Dize türü hakkında da doğru olabilir mi? Bir değişkene atanmış
public static void main()
{
string messageVar = "C#";
Test(messageVar);
// what about in assignement?
string messageVar2 = messageVar;
}
public void Test(string messageParam)
{
// logic
}
Ne zaman hakkında: Ben 2 işaretçiler (messageVar ve messageParam) altına kodunda aynı nesneye işaret çıkmasına neden? Bence, referans sadece kopyalanacaktır ve asıl nesne String Intern Pool'da önbelleğe alınmış aynı kalır. Emin değil.
messageVar2 aynı nesneyi de gösterir mi?
Teşekkürler,
nice; Dizelerle çalışırken Object.Equals ve Object.ReferenceEquals arasındaki fark nedir? –
Dizeler için 'Equals()', referanstan bağımsız olarak * dize eşitliği * için test yapar. "foo", her iki dizenin farklı nesne örneklerine işaret edip etmediğine bakılmaksızın "foo" değerine eşittir – BrokenGlass