请帮助我理解为什么C#不允许实际类有一个运营商或我可能在我的课的定义做。C#操作符定义只在抽象类可用
的号召创建Errd的作品,因为它是一个抽象类。 但是,你可以/为什么你不能在实际的课堂中拥有一个操作员,就像在我的Errd定义的注释版本中一样?
有什么在Errd的说出来的版本,我可以修复,使Errd errd = eq;
工作?
我想我应该添加IDE错误。 当Errd没有被定义为一个抽象的IDE becrys“
不能隐式转换公式来Errd。一个显式转换存在。 是否缺少强制转换?)
但是一个公式是什么像Errd用于铸造不会为你着想的响应意义。
Eq eq = new Eq();
Copa copa = new Copa(eq);
Errd errd = eq;
public class Copa {
public Copa(Eq e) {
//.. do something
}
}
public class Erd : Errd { .... }
public adstract class Errd {
public static implicit operator(Eq e) {
Erd q = new Erd();
//.. do something
return q;
}
}
/*
public class Errd {
public static implicit operator(Eq e) {
Errd q = new Errd();
//.. do something
return q;
}
}
*/
感谢。
因为你有两个类型完全相同的名字('Errd'和'Errd')?如果不是这样,那么更新你的代码,因为很难看到你正在努力完成上述任务,至少要编译它。此外,如果您收到错误或异常,那么如果您包含该信息将会有所帮助。 – Igor
Errd的第二个定义被注释掉了。 – Steve
请包括[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。另请阅读[我如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)。另请参阅[覆盖运算符==]一节(https://msdn.microsoft.com/ru-ru/library/ms173147(v = vs80).aspx),并确保您的语法正确(不是)。 – Igor