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

  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • incognitotraveler

    incognitotra

    27 Mayıs 2010
  • RealPapaPit

    RealPapaPit

    16 Mart 2009