- - PR -
C#でのinterfaceの継承について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-07-13 14:23
以下の様なコードを実装したいのですが、interfaceの継承がうまく出来ません。
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] [Guid("XXXX")] public interface IBaseInterface { // Methods bool Load(string strFile); bool Save(string strFile); // Properties bool IsLoaded { get; } } [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] [Guid("XXXX")] public interface INewInterface : IBaseInterface { } /// <summary> /// Class_BaseClass の概要の説明です。 /// </summary> [GuidAttribute("XXXX")] [ClassInterface(ClassInterfaceType.None)] public class Class_BaseClass { public Class_BaseClass() { } public virtual bool Load(string strFile) { return true; } public virtual bool Save(string strFile) { return true; } public bool IsLoaded { get { return true; } } } /// <summary> /// 派生クラス の概要の説明です。 /// </summary> [Guid("XXXX")] [ClassInterface(ClassInterfaceType.None)] public class Class_NewClass : Class_BaseClass, INewInterface { public Class_NewClass() { } public override Load(string strFile) { return true; } public override Save(string strFile) { return true; } } | ||||||||
|
投稿日時: 2005-07-13 14:41
こんにちわ。餅宮です。
どううまくいかないのでしょうか?
Load,Saveメソッドの戻り値がないからということじゃないよね? | ||||||||
|
投稿日時: 2005-07-13 14:45
早速のレスありがとうございます。
public interface INewInterface : IBaseInterface の部分のビルドが通らないのです。 new が要ると言われるのですが... | ||||||||
|
投稿日時: 2005-07-13 15:33
C# では、COM の IUnnknown, IDispatch 以外のカスタムインターフェースを継承元としたインターフェースは表現しづらいです。 面倒ですが、変に凝らずに public interface IBaseInterface { void DoSomeThing(); } public interface INewInterface // : IBaseInterface { #region IBaseInterface メンバ void DoSomeThing(); #endregion void DoSomeThing2(); } とするのが吉です。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2005-07-14 00:10
レスどうも有難うございました。
インターフェースの継承はやめて個別に定義します。 |
1