操作接口
<interface-name>Operations_功能接口中的方法都有一个附加的Ice.Curreet类型的参数,而在<interface-name>OprationsNC_功能接口中的方法则都没有这个参数。对于没有显式指定Ice.Current类型参数的方法,它其实有一个默认的Ice.Current参数。
如果一个类只有数据成员,而没有方法,那么编译器将不会生成上面所说的两个操作接口。
继承自Ice.Object
像接口一样,所有的类都隐式的继承自一个公共基类Ice.Object.,类继承自Ice.Object而不是Ice.ObjectPrx(接口继承自Ice.ObjectPrx)。所以,你不能在期望得到代码的地方指定一个类,反之亦然,这是因为他们的基类型是不兼容的。
Ice.Object的定义如下:
namespace Ice { public interface Object : System.ICloneable { int ice_hash(); bool ice_isA(string s); bool ice_isA(string s, Current current); void ice_ping(); void ice_ping(Current current); string[] ice_ids(); string[] ice_ids(Current current); string ice_id(); string ice_id(Current current); void ice_preMarshal(); void ice_postUnmarshal(); } }
* ice_hash 这个方法返回类的哈希键。 * ice_isA 这个方法当对象支持给定的类型ID时返回true,否则返回false. * ice_ids 这个方法返回类在运行时的真正类型ID, * ice_preMarshal Ice run time在整编一个对象的状态前会调用这个方法,这就给子类提供了一个验证数据成员的机会。 * ice_postUMarshal Ice run time在解编一个对象的状态后,会调用这个方法。如果子类希望执行附加的初始操作的话,可以重写这个方法。 注意,生成的类并没有重写GetHaseCode和Equals方法,这意味着类之间的比较是比较引用,而不是比较值。另外类还有提供了浅copy功能的Clone方法。