Chyba kompilátoru CS0217
Aby bylo možné použít jako operátor krátkého okruhu, musí mít uživatelem definovaný logický operátor ("operátor") stejný návratový typ jako typ jeho 2 parametrů.
Pokud definujete operátor pro uživatelem definovaný typ a pak se pokusíte operátor použít jako operátor zkratu, musí mít operátor definovaný uživatelem parametry a návratové hodnoty stejného typu. Další informace o operátorech zkratek naleznete v tématu &&
operátor a ||
operátor. Další informace o uživatelem definovaných zkratkách nebo podmíněných operátorech najdete v části Uživatelem definované podmíněné logické operátory specifikace jazyka C#.
Následující ukázka vygeneruje CS0217:
// CS0217.cs
using System;
public class MyClass
{
public static bool operator true (MyClass f)
{
return false;
}
public static bool operator false (MyClass f)
{
return false;
}
public static implicit operator int(MyClass x)
{
return 0;
}
public static int operator & (MyClass f1, MyClass f2) // CS0217
// try the following line instead
// public static MyClass operator & (MyClass f1, MyClass f2)
{
return new MyClass();
}
public static void Main()
{
MyClass f = new MyClass();
int i = f && f;
}
}
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: