我正在尝试在 C# 中复制我的 Java 代码,我想知道如何在 C# 中复制此 Java 功能。
Util.java
public class Util
{
public void function(String s, final SetAvailabilityStatusListener setStatusListener)
{
// ....
}
public static interface SetAvailabilityStatusListener {
public void setAvailabilityStatus(Status status);
}
}
Activity.java
public class Activity
{
public void anotherFunction()
{
util.function("name", new SetAvailabilityStatus()
{
@Override
public void setAvailabilityStatus(Status status) {
loginSetAvailabilityStatus(status);
}
}
}
}
最佳答案
使用委托(delegate)。它们在 C# 中使用,而不是实现接口(interface)的 Java 匿名类。
public class Util
{
public void Function(String s, Action<Status> setStatusListener)
{
// ....
setStatusListener("myStatus");
}
}
public class Activity
{
private Util util = new Util();
public void AnotherFunction()
{
util.Function("name", status => LoginSetAvailabilityStatus(status));
}
public void LoginSetAvailabilityStatus(string status){
//do something with status
}
}
关于java - 如何在 C# 中使用匿名类重新实现 Java 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012408/