如何调用类中实现的接口的方法?

发布于 2024-12-09 17:34:59 字数 1010 浏览 0 评论 0原文

我有一个接口,

 public  interface IMethod
 {
     String Add(string str);
     Boolean Update(string str);
     Boolean Delete(int id);
 }

我已经声明了另一个接口,如下所示 其中有 IMethod 作为属性。

public interface IFoo
{
     IMethod MethodCaller { get  ; set; }  
}

现在我在我的一个类中实现了 IFoo 接口,我想从中调用 IMethods 方法。

类实现

 public MyClass : IFoo
 { 
     public IMethod MethodCaller{ get  ; set; }  
 }

我该怎么做?我如何从

实现 IMethod 的 MyClass MyClasses 中调用添加更新删除方法,如下所示:

public class foo1:IMethod
{

         public String Add(string str){ return string.Empty;}

         Boolean Update(string str){//defination}

         Boolean Delete(int id){ //defination}
}

public class foo2:IMethod
{

         public String Add(string str){ return string.Empty;}

         Boolean Update(string str){//defination}

         Boolean Delete(int id){ //defination}
}

And i have one interface

 public  interface IMethod
 {
     String Add(string str);
     Boolean Update(string str);
     Boolean Delete(int id);
 }

I have declared another Interface Like this
which has IMethod as property.

public interface IFoo
{
     IMethod MethodCaller { get  ; set; }  
}

Now I gone implement IFoo interface in my one of class and from which i want to call IMethods method.

Class implementation

 public MyClass : IFoo
 { 
     public IMethod MethodCaller{ get  ; set; }  
 }

How do i do it ? how do i call Add Update Delete method from MyClass

MyClasses that implement IMethod as follows :

public class foo1:IMethod
{

         public String Add(string str){ return string.Empty;}

         Boolean Update(string str){//defination}

         Boolean Delete(int id){ //defination}
}

public class foo2:IMethod
{

         public String Add(string str){ return string.Empty;}

         Boolean Update(string str){//defination}

         Boolean Delete(int id){ //defination}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

意中人 2024-12-16 17:34:59

班级内:

public MyClass : IFoo   
{
   public void CallAllMethodsOfIIMethodImpl()
   {
       if (this.MethodCaller != null)
       {
          this.MethodCaller.Add( ... );
          this.MethodCaller.Delete( ... );
          this.MethodCaller.Update( ... );
       }
   }
}

班级外:

MyClass instance = new MyClass();
if (instance.MethodCaller != null)
{
   instance.MethodCaller.Add( ... );
   instance.MethodCaller.Delete( ... );
   instance.MethodCaller.Update( ... );
}

Inside a class:

public MyClass : IFoo   
{
   public void CallAllMethodsOfIIMethodImpl()
   {
       if (this.MethodCaller != null)
       {
          this.MethodCaller.Add( ... );
          this.MethodCaller.Delete( ... );
          this.MethodCaller.Update( ... );
       }
   }
}

Outside:

MyClass instance = new MyClass();
if (instance.MethodCaller != null)
{
   instance.MethodCaller.Add( ... );
   instance.MethodCaller.Delete( ... );
   instance.MethodCaller.Update( ... );
}
桜花祭 2024-12-16 17:34:59

您还没有定义任何实现 IMethod 的具体类 - 您只定义了一个 IMethod 类型的属性 - 现在您需要为该属性分配一个具体类,以便您可以调用它的方法。完成后,您可以简单地调用 MethodCaller 属性上的方法:

string result = MethodCaller.Add(someFoo);

You still haven't defined any concrete class that implements IMethod - you only have defined a property that is of type IMethod - now you need to assign a concrete class to this property so you can call the methods on it. Once you have done that you can simply call methods on your MethodCaller property:

string result = MethodCaller.Add(someFoo);
可可 2024-12-16 17:34:59

给定 myClassMyClass 的实例,并且 MethodCaller 已设置为具体实现,您可以像这样调用方法:

myClass.MethodCaller.Add(...);
myClass.MethodCaller.Update(...);
myClass.MethodCaller.Delete(...);

Given myClass is an instance of MyClass and the MethodCaller has been set to a concrete implementation, you can call the methods like this:

myClass.MethodCaller.Add(...);
myClass.MethodCaller.Update(...);
myClass.MethodCaller.Delete(...);
呢古 2024-12-16 17:34:59

您必须创建一个实现 IMethod 接口的内部类。

public MyClass : IFoo
 { 
   private TestClass _inst;
   public IMethod MethodCaller
   { 
     get 
        {
         if(_inst==null)
           _inst=new TestClass();
         return _inst;
        }
      set 
        {
          _inst=value;
         }  
    }
   public class TestClass : IMethod
   {
     public String Add(string str) {}
     public Boolean Update(string str) {}
     public Boolean Delete(int id) {}
   }
 }

调用方法:

MyClass instance=new MyClass();
instance.MethodCaller.Add(..);

 IMethod call=new MyClass().MethodCaller;
 call.Add(..);

You have to create an inner class which implements IMethod interface.

public MyClass : IFoo
 { 
   private TestClass _inst;
   public IMethod MethodCaller
   { 
     get 
        {
         if(_inst==null)
           _inst=new TestClass();
         return _inst;
        }
      set 
        {
          _inst=value;
         }  
    }
   public class TestClass : IMethod
   {
     public String Add(string str) {}
     public Boolean Update(string str) {}
     public Boolean Delete(int id) {}
   }
 }

Invoke methods:

MyClass instance=new MyClass();
instance.MethodCaller.Add(..);

OR

 IMethod call=new MyClass().MethodCaller;
 call.Add(..);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文