請幫助我理解爲什麼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