方法内的方法c#(Xamarin)

时间:2015-03-10 18:40:33

标签: java c# android

我正在使用Google指南在我的使用Xamarin制作的Android应用中创建地方建议。我想知道你如何将这个Java代码转换为c#,以及如何在c#中处理方法内部的方法?谢谢!

public Filter getFilter() {
    Filter filter = new Filter() {
        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults filterResults = new FilterResults();
            if (constraint != null) {
                // Retrieve the autocomplete results.
                resultList = autocomplete(constraint.toString());

                // Assign the data to the FilterResults
                filterResults.values = resultList;
                filterResults.count = resultList.size();
            }
            return filterResults;
        }

        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {
            if (results != null && results.count > 0) {
                notifyDataSetChanged();
            }
            else {
                notifyDataSetInvalidated();
            }
        }};
    return filter;
}

1 个答案:

答案 0 :(得分:2)

只需创建一个扩展或实现Filter的新命名类(取决于它是接口还是类)。如果你不想在其他地方使用它,请将它作为嵌套类。

对于单方法接口,通常委托是表示类型的最简单方式 - 我相信Xamarin使用的习惯用法 - 然后你可以使用lambda表达式或匿名方法来编写实施"内联"。