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

  • Bratayley

    Bratayley

    30 Aralık 2010
  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • MrDevin521

    MrDevin521

    18 Temmuz 2010