Вам нужно указать 'неявный', потому что также есть явные операторы.
Это означает, что преобразование между логическим значением и точкой сохранения может быть выполнено неявно, например, = скрыто.
Savepoint s = new Savepoint();
bool b = s;
Явное преобразование, например Очевидно, что это можно сделать так:
Savepoint s = new Savepoint();
bool b = (bool)s;
Неявное преобразование часто используется, когда нет возможной потери данных, т. Е. От Int16 (short)
до Int32 (int)
. Но если это возможно, вам нужно «согласиться» с этим, используя явное преобразование.
В вашем случае, например, если Savepoint
это просто
struct Savepoint
{
public bool data;
}
Вы можете использовать неявное преобразование, поскольку потеря данных невозможна:
Savepoint s = new Savepoint();
s.data = true;
bool b = s;
в противном случае я рекомендую вам указать явный оператор!