将Java匿名回调类转换为C#

时间:2016-06-07 13:04:53

标签: java c# xamarin

我是Xamarin Android的初学者,我必须测试手机Honeywell Dolphin CT 50的扫描仪。

我的项目编译得很好,我很好地从蜂蜜中添加了jar库,但我现在的问题是一些Java代码。

我无法将其翻译成C#!

以下是代码:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // create the AidcManager providing a Context and a
    // CreatedCallback implementation.
    AidcManager.create(this, new CreatedCallback() {

        @Override
        public void onCreated(AidcManager aidcManager) {
            manager = aidcManager;
            barcodeReader = manager.createBarcodeReader();
        }
    });

    ActivitySetting();
}

我的问题是翻译方法的第二个参数:

AidcManager.create => new CreatedCallback() ?

如何将其转换为C#?

1 个答案:

答案 0 :(得分:1)

你可以使用lambda,但只要有多个方法可以覆盖,就会崩溃。一个单独的类是处理一般情况的方法:

public virtual void onCreate(Bundle savedInstanceState)
{
    base.onCreate(savedInstanceState);
    ContentView = R.layout.activity_main;

    // create the AidcManager providing a Context and a
    // CreatedCallback implementation.
    AidcManager.create(this, new CreatedCallbackAnonymousInnerClassHelper());

    ActivitySetting();
}

private class CreatedCallbackAnonymousInnerClassHelper : CreatedCallback
{
    public override void onCreated(AidcManager aidcManager)
    {
        manager = aidcManager;
        barcodeReader = manager.createBarcodeReader();
    }
}