Skip to content

DE CSharp Keyword in

Codex edited this page Oct 11, 2026 · 2 revisions

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

C#: in

Handbuch C# · Praktischer Leitfaden

Im Parameter wird ein schreibgeschützter Link übergeben; legt Kontravarianz in der generischen Deklaration fest; in foreach und LINQ trennt das Element von der Sequenz.

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
int Double(in int value) => value * 2;
int count = 3;
System.Console.WriteLine(Double(in count));

Ergebnis:

6

Syntax

Method(in value) / interface IConsumer<in T> / foreach (var x in items)

Beispiel 1: Grundform

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)
    {
        Point value = new(2, 3);
        Console.WriteLine(Geometry.Sum(in value));
    }
}
public readonly record struct Point(int X, int Y);
public static class Geometry { public static int Sum(in Point value) => value.X + value.Y; }

Beispiel 2: eine weitere praktische Form

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)
    {
        IConsumer<object> broad = new Writer();
        IConsumer<string> narrow = broad;
        narrow.Accept("ore");
    }
}
public interface IConsumer<in T> { void Accept(T value); }
public class Writer : IConsumer<object> { public void Accept(object value) { Console.WriteLine(value); } }

Offizielle Quelle: Microsoft Learn.

Clone this wiki locally