korumalı iç (C# Başvurusu)

protected internalAnahtar sözcük birleşimi bir üye erişim değiştiricisidir. Korunan bir iç üyeye geçerli derlemeden veya kapsayan sınıftan türetilmiş türlerden erişilebilir. protected internalDiğer erişim değiştiricilerine ilişkin bir karşılaştırma için bkz. Erişilebilirlik düzeyleri.

Örnek

Bir temel sınıfın korunan iç üyesine, kendisini içeren derleme içindeki herhangi bir türden erişilebilir. Ayrıca, başka bir derlemede bulunan türetilmiş bir sınıfta, yalnızca erişim türetilmiş sınıf türünün bir değişkeniyle gerçekleşirse erişilebilir. Örneğin, aşağıdaki kod kesimini göz önünde bulundurun:

// Assembly1.cs
// Compile with: /target:library
public class BaseClass
{
   protected internal int myValue = 0;
}

class TestAccess
{
    void Access()
    {
        var baseObject = new BaseClass();
        baseObject.myValue = 5;
    }
}
// Assembly2.cs
// Compile with: /reference:Assembly1.dll
class DerivedClass : BaseClass
{
    static void Main()
    {
        var baseObject = new BaseClass();
        var derivedObject = new DerivedClass();

        // Error CS1540, because myValue can only be accessed by
        // classes derived from BaseClass.
        // baseObject.myValue = 10;

        // OK, because this class derives from BaseClass.
        derivedObject.myValue = 10;
    }
}

Bu örnek, ve olmak üzere iki dosya içerir Assembly1.cs Assembly2.cs . İlk dosya bir ortak temel sınıf, BaseClass ve başka bir sınıf içerir TestAccess . BaseClass , türü tarafından erişilen korumalı bir iç üyeye sahip myValue TestAccess . İkinci dosyada, myValue bir örneği üzerinden erişim girişimi BaseClass bir hata üretir, bu üyeye türetilmiş bir sınıf örneği aracılığıyla erişim DerivedClass başarılı olur.

Struct üye olamaz protected internal çünkü yapı devralınamaz.

C# dili belirtimi

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.

Ayrıca bkz.