如何调用具有Interface作为C#参数之一的方法?

ace*_*ura 1 c# methods interface parameter-passing interface-implementation

我有以下方法(在我的DLL中实现第三方sdk方法):

public void PlaceItem(myItemData item, IRequest request)
{
    var item = (ItemClassData)item; //**myItemData is the base class for ItemClassData**
    item.Id = 101;
    request.Succeeded(item.Id);
}
Run Code Online (Sandbox Code Playgroud)

接口参数如下:

public interface IRequest
{
    void Failed(string Error);
    void Succeeded(string ItemId);
}
Run Code Online (Sandbox Code Playgroud)

我想从函数中调用此方法.我知道如何在调用此方法时将对象作为第一个参数传递.但是如何传递第二个参数(Interface).任何帮助是极大的赞赏.

Ond*_*cek 5

只需创建一个实现此接口的类即可

public class MyClass : IRequest
{
    public void Failed(string Error) { // do something }
    public void Succeeded(string ItemId) { // do something }
}
Run Code Online (Sandbox Code Playgroud)

创建它的实例并将其传递给方法

var inst = new MyClass();    
PlaceItem(..., inst);
Run Code Online (Sandbox Code Playgroud)