Skip to content

IT CSharp Keyword implicit

Codex edited this page Oct 11, 2026 · 2 revisions

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

C#: implicit

Manuale C# · Guida pratica

Dichiarare una conversione personalizzata che il compilatore può applicare senza un cast esplicito.

Esempio semplice (Example.cs)

Salvare questo esempio separatamente come Example.cs. Eseguirlo indipendentemente dagli altri esempi di questa pagina.

Example.cs:

// PROJECT-EXAMPLE
Count count = 7;
System.Console.WriteLine(count.Value);
readonly record struct Count(int Value)
{
    public static implicit operator Count(int value) => new(value);
}

Risultato:

7

Sintassi

public static implicit operator Target(Source value) => ...;

Esempio 1: forma base

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)
    {
        Distance distance = 12;
        Console.WriteLine((int)distance);
    }
}
public readonly record struct Distance(int Value) { public static implicit operator Distance(int value) => new(value); public static explicit operator int(Distance value) => value.Value; }

Esempio 2: un'altra forma pratica

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)
    {
        Label label = "ore";
        Console.WriteLine((string)label);
    }
}
public readonly record struct Label(string Text) { public static implicit operator Label(string text) => new(text); public static explicit operator string(Label label) => label.Text; }

Fonte ufficiale: Microsoft Impara.

Clone this wiki locally