implicitní (C#-Reference)
implicit Deklarovat operátor implicitní uživatelem definovaný typ převodu se používá klíčové slovo.Můžete povolit implicitní převody mezi uživatelem a jiného typu, pokud převod je zaručena způsobit ztrátu dat.
Příklad
class Digit
{
public Digit(double d) { val = d; }
public double val;
// ...other members
// User-defined conversion from Digit to double
public static implicit operator double(Digit d)
{
return d.val;
}
// User-defined conversion from double to Digit
public static implicit operator Digit(double d)
{
return new Digit(d);
}
}
class Program
{
static void Main(string[] args)
{
Digit dig = new Digit(7);
//This call invokes the implicit "double" operator
double num = dig;
//This call invokes the implicit "Digit" operator
Digit dig2 = 12;
Console.WriteLine("num = {0} dig2 = {1}", num, dig2.val);
Console.ReadLine();
}
}
Odstraněním nepotřebných nádech implicitní převody lze zlepšit čitelnost zdrojového kódu.Ale protože implicitní převody nevyžadují programátorům explicitně nádech z jednoho typu na druhý, musí dbát zabránit neočekávané výsledky.Implicitní převod operátory by obecně nikdy vyvolávají výjimky a nikdy ztrátu informací tak, aby bylo možné bezpečně bez programátora povědomí.Pokud operátor převodu nelze splňují tato kritéria, by měly být označeny explicit.Další informace naleznete v tématu Pomocí operátory převodu.
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Viz také
Úkoly
Jak: implementace uživatelem definované převody mezi struktur (C# Příručka programování)