SORU
26 NİSAN 2012, PERŞEMBE


Dize Birleştirme ' ' operatör kullanma

string sınıf meta bakarak, ben sadece operatörler == != aşırı yüklü. Ne için birleştirme gerçekleştirmek mümkün '7 **' operatör?

Edit:

Eric bazı ilginç notlar dize birleştirme üzerinde Lippert:

Part 1

Part 2

Ayrıca Joel bölüm 2'de belirtilen (http://www.joelonsoftware.com/articles/fog0000000319.html) süper bir makale var

CEVAP
26 NİSAN 2012, PERŞEMBE


Mi - değil C# derleyici yapar :)

Bu kod:

string x = "hello";
string y = "there";
string z = "chaps";
string all = x   y   z;

aslında derlenmiş alır:

string x = "hello";
string y = "there";
string z = "chaps";
string all = string.Concat(x, y, z);

(Gah - edit araya giren yanlışlıkla başka bit kaldırıldı.)

Yararı C# derleyici fark vardır ki birden çok dize birbirine bağlanması burada olduğunu bilmiyorsun sonunda yaratıcı bir orta string x y olan ihtiyaçları da kopyalanacak yeniden bir parçası olarak birleştirme (x y) z. Bunun yerine, tek seferde halloldu.

EDİT: derleyici Unutmayınolamazeğer bir döngü bağlamak eğer her şeyi yapar. Örneğin, bu kod:

string x = "";
foreach (string y in strings)
{
    x  = y;
}

sadece eşdeğer olarak bulur:

string x = "";
foreach (string y in strings)
{
    x = string.Concat(x, y);
}

... yani buyokçöp bir sürü oluşturur, ve bu gibi durumlar için StringBuilder kullanmak etmelisiniz. Umarım başka soruya cevap verebilecek olan article going into more details about the two var.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kremosakhaz

    kremosakhaz

    25 AĞUSTOS 2006
  • SRI International

    SRI Internat

    30 NİSAN 2008
  • UberFacts

    UberFacts

    26 EKİM 2013