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

  • MADFINGER Games a.s.

    MADFINGER Ga

    21 NİSAN 2009
  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • Plugable

    Plugable

    19 Mayıs 2010