SORU
25 AĞUSTOS 2010, ÇARŞAMBA


StringBuilder sınıfı nasıl uygulanır? DAHİLİ olarak yeni string nesneleri her zaman yaratmak Ekle?

StringBuilder sınıfı nasıl uygulanır? DAHİLİ olarak yeni string nesneleri her zaman yaratmak Ekle?

CEVAP
25 AĞUSTOS 2010, ÇARŞAMBA


.NET 2.0 String sınıf DAHİLİ olarak kullanır. String StringBuilder bunu böylece sadece System ad dışında değişmez.

.NET 4.0 String char[] kullanmak için değiştirildi.

2.0 StringBuilder böyle görünüyordu

public sealed class StringBuilder : ISerializable
{
    // Fields
    private const string CapacityField = "Capacity";
    internal const int DefaultCapacity = 0x10;
    internal IntPtr m_currentThread;
    internal int m_MaxCapacity;
    internal volatile string m_StringValue; // HERE ----------------------
    private const string MaxCapacityField = "m_MaxCapacity";
    private const string StringValueField = "m_StringValue";
    private const string ThreadIDField = "m_currentThread";

Ama 4.0 bu gibi görünüyor:

public sealed class StringBuilder : ISerializable
{
    // Fields
    private const string CapacityField = "Capacity";
    internal const int DefaultCapacity = 0x10;
    internal char[] m_ChunkChars; // HERE --------------------------------
    internal int m_ChunkLength;
    internal int m_ChunkOffset;
    internal StringBuilder m_ChunkPrevious;
    internal int m_MaxCapacity;
    private const string MaxCapacityField = "m_MaxCapacity";
    internal const int MaxChunkSize = 0x1f40;
    private const string StringValueField = "m_StringValue";
    private const string ThreadIDField = "m_currentThread";

Böylece açıkça char[] kullanarak string kullanarak değiştirildi.

EDİT: Güncelleme cevap değişiklikleri yansıtmak için .NET 4 ben daha yeni keşfetti ().

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • habpsu

    habpsu

    25 Temmuz 2007
  • tsweeney79

    tsweeney79

    21 Ocak 2008