ein Projekt von goloroden.de

internal

Allgemeines

Kennzeichnet ein Element als intern zugreifbar. Auf ein Element, das mit internal gekennzeichnet wurde, kann aus allen Klassen der gleichen Assembly zugegriffen werden.

Beipiel

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;

namespace GoloRoden.GuideToCSharp
{
    /// <summary>
    /// Represents a base class.
    /// </summary>
    public class BaseClass
    {
        /// <summary>
        /// Gets or sets a foo value.
        /// </summary>
        /// <value>The foo value.</value>
        protected object Foo
        {
            get;
            private set;
        }

        /// <summary>
        /// Represents a bar method.
        /// </summary>
        protected internal virtual void Bar()
        {
        }
    }

    /// <summary>
    /// Represents a class that derives from BaseClass.
    /// </summary>
    public class DerivedClass : BaseClass
    {
        /// <summary>
        /// Represents a bar method.
        /// </summary>
        protected internal override void Bar()
        {
            // Print foo's value to the console.
            Console.WriteLine(this.Foo);
        }
    }
}

Details

Das Schlüsselwort protected kann mit dem Schlüsselwort internal zu protected internal kombiniert werden. Der Zugriff ist dann aus der gleichen Assembly und aus allen abgeleiteten Klassen möglich.

Die folgende Tabelle fasst die Möglichkeiten der einzelnen Zugriffsmodifizierer zusammen:

Zugriffsmodifizierer Von beliebiger Stelle Aus Assembly Aus abgeleiteter Klasse in eigener Assembly Aus abgeleiteter Klasse in anderer Assembly Aus eigener Klasse
public Ja Ja Ja Ja Ja
protected internal - Ja Ja Ja Ja
internal - Ja Ja - Ja
protected - - Ja Ja Ja
private - - - - Ja

Siehe auch (Referenz)

Siehe auch (Guide)