Peringatan Pengompilasi (tingkat 2) CS0280
'type' tidak mengimplementasikan pola 'pattern name'. 'method name' memiliki tanda tangan yang salah.
Dua pernyataan dalam C#, foreach dan using, mengandalkan pola yang telah ditentukan sebelumnya, yaitu "koleksi" dan "sumber daya" secara berurutan. Peringatan ini terjadi ketika pengompilasi tidak dapat mencocokkan salah satu pernyataan tersebut dengan polanya karena tanda tangan metode salah. Misalnya, pola "koleksi" mengharuskan adanya metode yang disebut MoveNext yang tidak mengambil parameter dan mengembalikan boolean
. Kode Anda mungkin berisi metode MoveNext yang memiliki parameter atau mungkin mengembalikan objek.
Pola "sumber daya" dan using
memberikan contoh lain. Pola "sumber daya" memerlukan metode Dispose; jika Anda menentukan properti dengan nama yang sama, Anda akan mendapatkan peringatan ini.
Untuk mengatasi peringatan ini, pastikan bahwa tanda tangan metode dalam jenis Anda cocok dengan tanda tangan metode yang sesuai dalam pola, dan pastikan bahwa Anda tidak memiliki properti dengan nama yang sama dengan metode yang diperlukan oleh pola.
Sampel berikut menghasilkan CS0280.
// CS0280.cs
using System;
using System.Collections;
public class ValidBase: IEnumerable
{
IEnumerator IEnumerable.GetEnumerator()
{
yield return 0;
}
internal IEnumerator GetEnumerator()
{
yield return 0;
}
}
class Derived : ValidBase
{
// field, not method
new public int GetEnumerator;
}
public class Test
{
public static void Main()
{
foreach (int i in new Derived()) {} // CS0280
}
}
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: