korumalı iç (C# Başvurusu)protected internal (C# Reference)

protected internal Anahtar sözcüğü bir üye erişim değiştiricisi oluşur.The protected internal keyword combination is a member access modifier. Korumalı bir iç üye geçerli derleme veya içeren sınıfından türetilen türler erişilebilir.A protected internal member is accessible from the current assembly or from types that are derived from the containing class. Bir karşılaştırması protected internal diğer erişim değiştiricileri ile bkz erişilebilirlik düzeyleri.For a comparison of protected internal with the other access modifiers, see Accessibility Levels.

ÖrnekExample

Bir taban sınıfın korumalı bir iç üye içeren kendi derlemesi içindeki herhangi bir türü erişilebilir.A protected internal member of a base class is accessible from any type within its containing assembly. Yalnızca türetilmiş sınıf türünde bir değişken erişim oluşması durumunda başka bir derlemede bulunan türetilen bir sınıfta da erişilebilir.It is also accessible in a derived class located in another assembly only if the access occurs through a variable of the derived class type. Örneğin, aşağıdaki kod kesimi göz önünde bulundurun:For example, consider the following code segment:

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

class TestAccess
{
    void Access()
    {
        BaseClass baseObject = new BaseClass();
        baseObject.myValue = 5;
    }
}
// Assembly2.cs
// Compile with: /reference:Assembly1.dll
class DerivedClass : BaseClass
{
    static void Main()
    {
        BaseClass baseObject = new BaseClass();
        DerivedClass 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 iki dosyayı içeren Assembly1.cs ve Assembly2.cs.This example contains two files, Assembly1.cs and Assembly2.cs. İlk dosyayı içeren genel bir temel sınıf BaseClassve başka bir sınıf TestAccess.The first file contains a public base class, BaseClass, and another class, TestAccess. BaseClass korumalı bir iç üye sahibi myValue, tarafından erişilen TestAccess türü.BaseClass owns a protected internal member, myValue, which is accessed by the TestAccess type. İkinci dosyasında, erişme denemesi myValue örneği üzerinden BaseClass bu üyeye türetilmiş bir sınıfın bir örnek üzerinden erişim sırasında bir hata üretecektir DerivedClass başarılı olur.In the second file, an attempt to access myValue through an instance of BaseClass will produce an error, while an access to this member through an instance of a derived class, DerivedClass will succeed.

Yapı üyeleri olamaz protected internal struct devraldığından.Struct members cannot be protected internal because the struct cannot be inherited.

C# dili belirtimiC# language specification

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi.For more information, see the C# Language Specification. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.The language specification is the definitive source for C# syntax and usage.

Ayrıca bkz.See also