Baca dalam bahasa Inggris

Bagikan melalui


Peringatan Pengompilasi (level 1) CS1684

Referensi ke jenis 'Nama Tipe' mengklaim bahwa ini ditentukan dalam 'Namespace', tetapi tidak dapat ditemukan

Kesalahan ini dapat disebabkan oleh referensi di dalam satu namespace layanan yang mengacu pada jenis yang dinyatakan ada di dalam namespace layanan kedua, tetapi jenisnya tidak ada. Misalnya, mydll.dll mengatakan jenis A ada di dalam yourdll.dll, tetapi tidak ada jenis seperti itu di dalam yourdll.dll. Salah satu kemungkinan penyebab kesalahan ini adalah bahwa versi yourdll.dll yang Anda gunakan terlalu lama dan A belum ditentukan.

Sampel berikut menghasilkan CS1684.

Contoh 1

C#
// CS1684_a.cs  
// compile with: /target:library /keyfile:CS1684.key  
public class A {  
   public void Test() {}  
}  
  
public class C2 {}  

Contoh 2

C#
// 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(); }  
}  

Contoh 3

Kami kini menyusun kembali rakitan pertama, membiarkan definisi kelas C2 untuk tidak ditentukan dalam kompilasi ulang.

C#
// CS1684_c.cs  
// compile with: /target:library /keyfile:CS1684.key /out:CS1684_a.dll  
public class A {  
   public void Test() {}  
}  

Contoh 4

Modul ini mereferensikan modul kedua melalui pengidentifikasi Ref. Tetapi modul kedua berisi referensi ke kelas C2, yang tidak lagi ada karena kompilasi pada langkah sebelumnya, sehingga pesan kesalahan CS1684 dikembalikan dari kompilasi modul ini.

C#
// CS1684_d.cs  
// compile with: /reference:cs1684_a.dll /reference:cs1684_b.dll  
// CS1684 expected  
class Tester  
{  
   public static void Main()  
   {  
      Ref.GetA().Test();  
   }  
}