将Java转换为C#:声明接口并创建实例?

sta*_*ith 3 c# java xamarin.android

我正在转换一些Java代码C#,以便在我的MonoDroid应用程序中使用.我有一些片段,其中声明接口,然后初始化为对象.我不是100%肯定在C#中实现这些的最佳方法.

例如:

public class NumberPicker {

    public interface Formatter {
        String toString(int value);
    }

    public static final NumberPicker.Formatter TWO_DIGIT_FORMATTER =
            new NumberPicker.Formatter() {
             //some code here
            };

}
Run Code Online (Sandbox Code Playgroud)

在c#中执行此操作的等效或最佳方法是什么?

rtp*_*tpg 6

对于具有一个函数的简单"一次性"接口(例如,事件侦听器),您可以考虑重写代码以使用委托和匿名函数.

delegate String Formatter(int n);
...

Formatter TWO_DIGIT_FORMATTER = delegate(int n) {
                                         //code here
                                       };
Run Code Online (Sandbox Code Playgroud)

然后你可以使用TWO_DIGIT_FORMATTER像函数(TWO_DIGIT_FORMATTER(12)).

匿名类(这是你的java代码中发生的事情)在C#中不存在,但委托就足够了这样的情况.