SORU
29 EYLÜL 2010, ÇARŞAMBA


Bastırma "asla" ve "asla" atanır; C uyarılar#

Bir HTTPSystemDefinitions var.cs C dosyası# temelde eski windows yönetilen kod ile tüketimi için yapılandırılmış açıklayan proje.

Bu kod tarafından tüketilen tüm Yapılar ya da komple set ISAPI ilgili içerir. Derleme bu yapıların tüm alan üyeleri aşağıdaki gibi bir uyarı neden vardır:-

Uyarı Alan 'UnionSquare.ISAPI.HTTP_FİLTER_PREPROC_HEADERS.'Asla atanır, ve her zaman varsayılan değer null olacaktır . SetHeader

ya

Uyarı alan 'UnionSquare.ISAPI.HTTP_FİLTER_PREPROC_HEADERS.Error' asla kullanılır

Bu #pragma warning disable ile devre dışı bırakılabilir mi? İlgili hata numaralarını ne olurdu? Yapabileceğim başka bir şey var mı? yoksa Bu dosya, bu çok önemli bunun için ben sadece bu diğer dosyalar gibi gelen uyarıları görmek unutmayın.

Edit

Örnek yapı:-

struct HTTP_FILTER_PREPROC_HEADERS
{
    //
    //  For SF_NOTIFY_PREPROC_HEADERS, retrieves the specified header value.
    //  Header names should include the trailing ':'.  The special values
    //  'method', 'url' and 'version' can be used to retrieve the individual
    //  portions of the request line
    //

    internal GetHeaderDelegate GetHeader;
    internal SetHeaderDelegate SetHeader;
    internal AddHeaderDelegate AddHeader;

    UInt32  HttpStatus;               // New in 4.0, status for SEND_RESPONSE
    UInt32  dwReserved;               // New in 4.0
}

CEVAP
29 EYLÜL 2010, ÇARŞAMBA


Evet, bu bastırılmış olabilir.

Normalde, ben karşı ağır uyarılar, ancak bu durumda, kullanılan yapılar için birlikte çalışma kesinlikle gerektiren bazı alanlar mevcut olması, olsa bile hiç niyetli (veya) onlar, yani bu durumda sanırım öyle olmalı haklı.

Normalde, bu iki uyarı bastırmak için, soruna neden olan kodu düzeltmek. ("... Hiçbir zaman kullanılır") genellikle kod. önceki sürümlerden kalanlar kod-koku bir ilk Belki de kod silindi, ama alanlar geride bıraktı.

İkinci genellikle yanlış kullanılan alanlar için kod-koku. Örneğin, yanlış bir özelliğin yeni değeri özelliği geri kendisine, hiç yedekleme alanı için yazı yazabilirsin.


Uyarıları bastırmak için "Alan XYZ hiç kullanmadım"bunu yapmak için:

#pragma warning disable 0169
... field declaration
#pragma warning restore 0169

Uyarıları bastırmak için "Alan XYZ asla atanır, ve her zaman varsayılan değeri XX"bunu yapmak için:

#pragma warning disable 0649
... field declaration
#pragma warning restore 0649

Bu uyarı kendini numaraları (örn. bulmak için nasıl 0169 ve 0649 kullanın) yaptım, bunu yapmak için:

  • Kod olarak normal derleme, Visual Studio hata listenize bazı uyarılar katacak
  • Çıktı penceresine geçin ve çıkış, ve aynı uyarıları AVI Oluşturun
  • Bu gibi görünmelidir ilgili mesaj, gelen 4 haneli bir uyarı kodu kopyalayın:

    C:\Dev\VS.NET\ConsoleApplication19\ConsoleApplication19\Program.cs(10,28): uyarı CS0649: Alan 'ConsoleApplication19.Program.dwReserved' asla atanmış ve her zaman varsayılan değer 0 olacak


Uyarı: Yorum başına @Jon Hanna, belki de birkaç uyarılar bu soruya cevap gelecek bulamayanlar için bu sırayla.

  • İlk ve en önemlisi, bir uyarı bastırma eylemi baş ağrısı için hap yutmaya benzer. Tabii, bazen yapılacak en doğru şey olabilir, ama catch-all bir çözüm değil. Bazen bir baş ağrısı, aynı uyarı ile maske olmamalı gerçek bir belirtisidir. Her zaman en iyi onların neden sabitleyerek uyarılar tedavi etmek için, sadece körü körüne yapı çıktı onları kaldırmak yerine deneyin.
  • Bunu söyledikten sonra eğer bir uyarı bastırmak istiyorsanız, yukarıdaki yattım desen izleyin. İlk kod satırı, *7,* uyarı devre dışı bırakırbu dosyanın geri kalanı içinen az #pragma warning restore XYZK bir karşılık bulunana kadar , ya. Bu uyarılar üzerine devre dışı satır sayısını en aza indirmek. Desen yukarıda sadece bir satır için Uyarı devre dışı bırakır.
  • Ayrıca Jon bahseder gibi, bunu neden yaptığını bir yorum iyi bir fikirdir. Devre dışı bırakmanın bir uyarı olduğunu kesinlikle bir kod-koku bitince olmadan neden, ve bir yorum önlemek gelecek bakıcılarına gelen vakit geçirmeyi de merak ettim neden yaptın bunu, hatta onu çıkarmak ve düzeltmek için çalışıyorum uyarılar.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GUN-TIME with Brandon

    GUN-TIME wit

    3 ŞUBAT 2009
  • Joshua Bane

    Joshua Bane

    24 Temmuz 2007
  • LimeFire

    LimeFire

    2 ŞUBAT 2012