SORU
24 EYLÜL 2008, ÇARŞAMBA


'' ifadelerini kullanarak içinde olmalıdır ya da ad dışında?

Bazı C StyleCop çalışan edilmiştir# Kodu ve using ifadelerim ad içinde olması gerektiğini rapor ediyor.

Ad dışında içinde using ifadeleri koyarak yerine teknik bir nedeni var mı?

CEVAP
30 EYLÜL 2008, Salı


Aslında ikisi arasında ince bir fark var. Dosya1 aşağıdaki kodu var düşünün.cs:

// File1.cs
using System;
namespace Outer.Inner
{
    class Foo
    {
        static void Bar()
        {
            double d = Math.PI;
        }
    }
}

Şimdi birisi başka bir dosyaya (DOSYA2.ekleyen düşünün cs) bu gibi görünen proje için:

// File2.cs
namespace Outer
{
    class Math
    {
    }
}

Derleyici ad dışında using Bu tablolara bakmadan önce Outer arama System.Math yerine Outer.Math bulur. Ne yazık ki (ya da belki neyse ki?), Outer.Math PI Hiç bir üye var, Dosya1 şimdi bozuldu.

Eğer bu değişiklikler aşağıdaki gibidir: ad alanı bildirimi içinde using

// File1b.cs
namespace Outer.Inner
{
    using System;
    class Foo
    {
        static void Bar()
        {
            double d = Math.PI;
        }
    }
}

Şimdi derleyici Outer, System.Math ve her şey bulur aramadan önce System arar.

Bazı Math System; buradaki amaç sadece bir tane var bu yana kullanıcı tanımlı bir sınıf için kötü bir isim olduğunu iddia ediyorumbir fark, ve bu kod sürdürülebilirliği etkiler.

Ayrıca ilginç Foo ad olur Outer yerine Outer.Inner ne not. Bu durumda, File2 ekleme Outer.Math using nereye olursa olsun Dosya1 keser. Bu derleyici en içteki using deyimler bakar önce ad alanı kapsayan arama anlamına gelir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Capcom Unity

    Capcom Unity

    5 NİSAN 2010
  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • xdadevelopers

    xdadeveloper

    25 Aralık 2009