Если я перегружу оператор !
в классе, какой тип он должен вернуть? В книге я нашел это (частичный список):
public class MyType {
public int IntField { get; set; }
public MyType(int intField) {
IntField = intField;
}
public static bool operator !(MyType mt) {
return (mt.IntField <= 0);
}
Он компилируется , но я ожидаю, что оператор !
вернет экземпляр MyType
, что-то вроде
public static MyType operator !(MyType mt) {
var result = new MyType(-mt.IntField);
return result;
}
На самом деле, я ожидал, что компилятор потребует, чтобы !
оператор возвращает MyType
. Но это не так.
Итак ... почему тип, возвращаемый оператором !
, не должен быть содержащим типом? Вы действительно ли должен сделать возвращаемый тип ++
или -
содержащим типом.