2010-09-28 17 views
5

Değişken ve değişmez arasındaki temel farkı bulmakta bana yardımcı olan var mı?Değişken ve değişmez arasındaki fark nedir?

+3

Errr, biri değişebilir, diğeri değil! Bugün 'özel' sorular için gün gibi görünüyor ... – leppie

+0

Ölümcül Çeşitler: http://blogs.msdn.com/b/ericlippert/archive/2007/11/13/immutability-in-c-part-one -kimlikleri-of-immutability.aspx – LukeH

+0

Bir teşekkürler ve alla –

cevap

12

Immutable, bir kez başlatıldığında, bir nesnenin durumunun değişemeyeceği anlamına gelir.

Mutable yapabilir. Örneğin, .NET'te dizeler değişmezdir. Bir dizge (trim, üst kasa, vb.) Üzerinde bir işlem yaptığınızda, yeni bir dizi oluşturulur.

Pratikte, değiştirilemez bir tür oluşturmak istiyorsanız, yalnızca alıcılara izin verirsiniz ve herhangi bir durum değişikliğine izin vermezsiniz (bu nedenle, kurucu çalışmayı bitirdiğinde herhangi bir özel alan değişemez).

+1

'DateTime 'başka biridir. – Andrey

+0

@Andrey: Bir valuetype değişebilirse bu bir programcı hatasıdır :) – leppie

2

Taklit edilemeyen bir tür, örneklendikten sonra değiştirilemez. Örneğin dizeler değişmezdir. Her zaman bir dizgenin değerini değiştirmek istediğinizde yeni bir örnek oluşturulur.

4

bir very basic definition olacaktır:

Değişken Nesne:: bir nesnenin bir örneği başvurusu olduğunda, bu örneğinin içeriği

sabit nesneler değiştirilebilir Bir nesnenin örneğine başvurduğunuzda, bu örneğin içeriği

3

değiştirilemez., "oluşturulduktan sonra değiştirilemez" anlamına gelir.

  • Değiştirilemeyen bir türde kurucu ve alıcılar vardır ancak ayarlayıcılar yoktur.
  • Değişken tipte bir ayarlayıcı da olabilir.

değişmez bir türünün bir örneği DateTime. AddMinutes yöntemi, nesneyi değiştirmez - yeni bir DateTime oluşturur ve döndürür.

Başka bir örnek dizedir. Dize benzer bir değişken sınıf için StringBuilder sınıfını kullanabilirsiniz.

değişmez olarak bir tür ilan etmek C# hiçbir kelime yoktur. Bunun yerine, tüm kurulacak alanları yalnızca kurucuda ayarlanabilmelerini sağlamak için readonly olarak işaretlemelisiniz. Bu, alanlardan birini yanlışlıkla değiştirmeyi ve değişmezliği kırmanızı önleyecektir.

1

İşlevsel dillerde kullanılan değişken değişkenler. Bir terim değişkeninin kullanılması uygun değildir ve fonksiyonel programcıları terim değerini tercih eder. Değişmezlik

1

Avantajları: Eğer seçim var, yani değişmezlik tercih

eğilimli
3 Az hata Paylaşım

1 Konu Emniyet
2.:)

0

Kullanım Referans
imaginationhunt.blogspot Değişken

IS STRING MUTABLE OR IMMUTABLE IN .NET?

: kimin devlet oluşturulduktan sonra değiştirilebilir Değişken anlamına gelir.
Kaçırılmamış: Durumu oluşturulduktan sonra durumu değiştirilemeyen ölçülebilir araçlar.

Dize nesneleri 'değişmez' dize dizesinde bulunan karakterleri değiştiremediğimiz anlamına gelir, dize üzerindeki işlemler de dizinin karakterlerini değiştirmek yerine değiştirilmiş bir sürüm oluşturur.

İlgili konular