DE CSharp Keyword in - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

Українська · Русский · 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.

⚠️ **GitHub.com Fallback** ⚠️