Skip to content

DE CSharp Keyword partial member

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C#: partial ist ein Teilbegriff

Handbuch C# · Praktischer Leitfaden

Ein partieller Member verfügt über eine separate Deklaration und Implementierung innerhalb des partiellen Typs. Die Implementierung ist für die angegebene öffentliche Methode und Eigenschaft obligatorisch. Ihre Unterschrift muss mit der Anzeige übereinstimmen. Teileigenschaften werden ab C# 13 unterstützt. Das Projekt fügt alle Teile zusammen.

Einfaches Beispiel (Example.cs)

Speichern Sie dieses Beispiel separat als Example.cs. Führen Sie es unabhängig von den anderen Beispielen dieser Seite aus.

Example.cs:

// PROJECT-EXAMPLE
System.Console.WriteLine(new Item().Read());
partial class Item { public partial int Read(); }
partial class Item { public partial int Read() => 7; }

Ergebnis:

7

Syntax

public partial string Format(string name, int count);
public partial string Name { get; set; }

Deklaration und Implementierung der öffentlichen Teilmethode

Datei Example.csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <LangVersion>14.0</LangVersion>
    <Nullable>enable</Nullable>
    
  </PropertyGroup>

</Project>

Datei Program.cs:

using System;
internal static class Program
{
    public static void Main()
    {
        var formatter = new Formatter();
        Console.WriteLine(formatter.Format("Bandages", 15));
    }
}

Datei Formatter.Contract.cs:

public partial class Formatter
{
    public partial string Format(string name, int count);
}

Datei Formatter.Implementation.cs:

public partial class Formatter
{
    public partial string Format(string name, int count) => $"{name}: {count}";
}

Ergebnis:

Bandages: 15

Teilweise Eigentum mit Zuweisungsvalidierung

Datei Example.csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <LangVersion>14.0</LangVersion>
    <Nullable>enable</Nullable>
    
  </PropertyGroup>

</Project>

Datei Program.cs:

using System;
internal static class Program
{
    public static void Main()
    {
        var settings = new Settings { Name = "  Traveller  " };
        Console.WriteLine($"[{settings.Name}]");
    }
}

Datei Settings.Contract.cs:

public partial class Settings
{
    public partial string Name { get; set; }
}

Datei Settings.Implementation.cs:

public partial class Settings
{
    private string name = "";
    public partial string Name
    {
        get => name;
        set => name = value.Trim();
    }
}

Ergebnis:

[Traveller]

Beispiel 3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

public static class Program
{
    public static async Task Main(string[] args)
    {
        Counter value = new(5);
        Console.WriteLine(value.Value);
    }
}
public partial class Counter { public int Value { get; } public partial Counter(int value); }
public partial class Counter { public partial Counter(int value) { Value = value; } }

Beispiel 4

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

public static class Program
{
    public static async Task Main(string[] args)
    {
        Signal value = new();
        value.Fired += () => Console.WriteLine("Fired");
        value.Fire();
    }
}
public partial class Signal { public partial event Action Fired; }
public partial class Signal { private Action? handlers; public partial event Action Fired { add { handlers += value; } remove { handlers -= value; } } public void Fire() { handlers?.Invoke(); } }

Offizielle Quelle: Microsoft Learn.

Clone this wiki locally