Derleyici Uyarısı (düzey 1) CS1684
'Tür Adı' türüne başvuru, 'Ad Alanı' içinde tanımlandığını iddia eder, ancak bulunamadı
Bu hata, bir ad alanının içindeki bir başvurunun, ikinci bir ad alanı içinde var olduğunu söylediği bir türe başvurması, ancak türün mevcut olmamasından kaynaklanabilir. Örneğin, mydll.dll türün A
yourdll.dll içinde var olduğunu, ancak yourdll.dll içinde böyle bir tür olmadığını söyler. Bu hatanın olası nedenlerinden biri, kullandığınız yourdll.dll sürümünün çok eski olması ve A
henüz tanımlanmamış olmasıdır.
Aşağıdaki örnek CS1684 oluşturur.
// CS1684_a.cs
// compile with: /target:library /keyfile:CS1684.key
public class A {
public void Test() {}
}
public class C2 {}
// CS1684_b.cs
// compile with: /target:library /r:cs1684_a.dll
// post-build command: del /f CS1684_a.dll
using System;
public class Ref
{
public static A GetA() { return new A(); }
public static C2 GetC() { return new C2(); }
}
Şimdi ilk derlemeyi yeniden derleyeceğiz ve C2 sınıfının tanımı yeniden derlemede tanımlanmamalıdır.
// CS1684_c.cs
// compile with: /target:library /keyfile:CS1684.key /out:CS1684_a.dll
public class A {
public void Test() {}
}
Bu modül, tanımlayıcısı Ref
ile ikinci modüle başvurur. Ancak ikinci modül, önceki adımda derleme nedeniyle artık var olmayan sınıfına C2
bir başvuru içerir ve bu nedenle cs1684 hata iletisi bu modülün derlemesinden döndürülür.
// CS1684_d.cs
// compile with: /reference:cs1684_a.dll /reference:cs1684_b.dll
// CS1684 expected
class Tester
{
public static void Main()
{
Ref.GetA().Test();
}
}
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: