2016-05-24 54 views
0

我在爲xamarin.ios委託創建類時遇到了問題。 在iOS中,我們使用協議來實現委託,但在這裏我無法實現接口作爲委託。 讓我明確這個概念。 我有一個接口在一個文件中,如:在Xamarin.iOS中的代表

public interface SendBackDelegate 
{ 
    void sendBackData(); 
} 

public class SelectList 
{ 

} 

在其他文件中我有主類是這樣的:

public class ShowList: SendBackDelegate 
{ 
    public ShowList() 
    { 
     SelectList obj = new SelectList(); 
     obj.delegate = this; 
    } 
    void sendBackData() 
    { 
     Console.WriteLine("Send Back DATA"); 
    } 
} 

現在你能告訴我怎麼這個接口的SelectList類來實現?

謝謝

回答

0

我不在Xamarin.iOS上使用委託。我更喜歡使用動作。

class MainClass 
{ 
    public static void Main (string[] args) 
    { 
     var x = new ShowList(); 
    } 
} 

public interface SendBackDelegate 
{ 
    void sendBackData(); 
} 

public class ShowList : SendBackDelegate 
{ 
    public ShowList() 
    { 
     SelectList obj = new SelectList (sendBackData); 
    } 

    public void sendBackData() 
    { 
     Console.WriteLine ("Send Back DATA"); 
    } 
} 

public class SelectList 
{ 
    Action _callback; 

    public SelectList (Action callback) 
    { 
     _callback = callback; 
     Ticker(); 
    } 

    private void Ticker() 
    { 
     _callback(); 
    } 
} 
1

你可以使用類似的接口協議,只有你有,使這可以擁有其已實現的接口方法的類對象接口的參考對象。你的例子也會很清楚。

public interface SendBackDelegate 
{ 
    void sendBackData(); 
} 

public class SelectList 
{ 
    ShowList showListObj = new ShowList(); 
    SendBackDelegate delegate = showListObj; 
    delegate.sendBackData(); 
    //this will call the method sendBackData() of class ShowList.  
}  

public class ShowList: SendBackDelegate 
{ 
    public ShowList() 
    { 
     SelectList obj = new SelectList(); 
     obj.delegate = this; 
    } 
    void sendBackData() 
    { 
     Console.WriteLine("Send Back DATA"); 
    } 
} 

請讓我知道,如果你還有問題。