java - 如何在 C# 中使用匿名类重新实现 Java 监听器

标签 java c# interface listener

我正在尝试在 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/

相关文章:

java - 无需 Eclipse 即可启动 Java 桌面应用程序

java - 获取 DefaultListModel 以使用 LinkedList

java - 配置 Log4j XML 配置的方法

c# - 通过评论禁用 Resharper

c# - 在保持多态性的同时更改子类的属性访问器的适当方法是什么?

java - 测试Grails应用程序生成pdf文件无法在空对象上获取属性 'config'

c# - 在 ASP.Net Core 中请求内容解压

c# - 从 .csproj 文件生成 AssemblyInfo 时如何定义多个友元程序集?

Android:监听变量变化

php 检查该类是否实现接口(interface),而不是其父类