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

  • BASS212M

    BASS212M

    15 Temmuz 2009
  • EminemMusic

    EminemMusic

    9 ŞUBAT 2007
  • humanHardDrive

    humanHardDri

    16 Mart 2011