Derleyici Hatası CS0106
'değiştirici' değiştiricisi bu öğe için geçerli değil
Sınıf veya arabirim üyesi geçersiz bir erişim değiştiricisi ile işaretlendi. Aşağıdaki örneklerde bu geçersiz değiştiricilerden bazıları açıklanmaktadır:
Statik değiştiriciye yerel bir işlevde izin verilmez. Statik yerel işlev özelliği C# 8.0 ile başlayarak desteklenir. C# 8.0'ı desteklemeyen bir derleyici, bu özelliği kullanmaya çalıştığınızda CS0106 üretir. Ancak, C# 8.0'ı destekleyen ancak ayarlanan dil sürümü C# 8.0'ın öncesi olan bir derleyici, C# 8.0 veya üzerini kullanmanızı öneren bir tanılama oluşturur.
Açık
public
arabirim bildiriminde anahtar sözcüğüne izin verilmez. Bu durumda, anahtar sözcüğünüpublic
açık arabirim bildiriminden kaldırın.Soyut bir arabirim uygulaması hiçbir zaman geçersiz kılınamayacağından, soyut anahtar sözcüğüne açık arabirim bildiriminde izin verilmez.
Yerel bir işlevde erişim değiştiricilerine izin verilmez. Yerel işlevler her zaman özeldir.
Readonly anahtar sözcüğüne, dönüşler dışında
ref readonly
bir sınıf türündeki yöntemler üzerinde izin verilmez (readonly
anahtar sözcük anahtar sözcüğündenref
sonra görünmelidir).
Visual Studio'nun önceki sürümlerinde, bir sınıfta değiştiriciye static
izin verilmedi, ancak static
Visual Studio 2005'den itibaren sınıflara izin veriliyordu.
Daha fazla bilgi için bkz . Arabirimler.
Örnek
Aşağıdaki örnek CS0106 oluşturur:
// CS0106.cs
namespace MyNamespace
{
interface I
{
void M1();
void M2();
}
public class MyClass : I
{
public readonly int Prop1 { get; set; } // CS0106
public int Prop2 { get; readonly set; } // CS0106
public void I.M1() {} // CS0106
abstract void I.M2() {} // CS0106
public void AccessModifierOnLocalFunction()
{
public void LocalFunction() {} // CS0106
}
public readonly void ReadonlyMethod() {} // CS0106
// Move the `readonly` keyword after the `ref` keyword
public readonly ref int ReadonlyBeforeRef(ref int reference) // CS0106
{
return ref reference;
}
public static void Main() {}
}
public readonly class ReadonlyClass {} // CS0106
}