C#匿名方法实现Java匿名类功能
来源:互联网 发布:淘宝如何设置全屏海报 编辑:程序博客网 时间:2024/05/21 07:10
Java选手写C#,虽说语法很像,但是C#中没有匿名类,有时候感觉还是挺别扭的。但是C#有匿名方法(lambda表达式),替代Java的匿名类。
Java代码:
public class Test { public void getItem(int position, ViewHolder viewHolder) { final int pos = position; viewHolder.setOnDataChangeListener(new OnDataChangeListener() { @Override public void onChange(int index) { System.out.print(index + pos); } }); } public interface OnDataChangeListener { void onChange(int index); } public class ViewHolder { private OnDataChangeListener onDataChangeListener; public void setOnDataChangeListener(OnDataChangeListener onDataChangeListener) { this.onDataChangeListener = onDataChangeListener; } }}
C#代码:
public class Test { public void getItem(int position, ViewHolder viewHolder) { int pos = position;// viewHolder.SetListener(OnDataChangeListener); viewHolder.SetListener(index => { Console.WriteLine(pos + index); }); } private void OnDataChangeListener(int index) { //这里面怎么获取pos? } public class ViewHolder { public delegate void OnDataChangeListener(int index); private OnDataChangeListener _onDataChangeListener; public void SetListener(OnDataChangeListener _listener) { _onDataChangeListener = _listener; } } }
java代码如果接口中有两个方法:
public class Test { ... public OnChangeLister onChangeLister = new OnChangeLister() { @Override public void onStart() { Test.this.onChangeLister = null; } @Override public void onFinish() { } }; public interface OnChangeLister { void onStart(); void onFinish(); }}
Java中可以通过匿名内部类来实现,并把几个方法都封装到一个接口中;但是C#中没有内部类可以持有外部类的引用的概念,所以实现起来没有java方便,当然也可以使用匿名方法实现,但是封装性没有Java用接口好。
以上是关于Java匿名类在C#中实现的一些认识。
阅读全文
0 0
- C#匿名方法实现Java匿名类功能
- C#匿名类和匿名方法
- 匿名类+匿名方法
- 匿名类和匿名方法
- C#匿名方法zz
- C#的匿名方法
- C#基础:匿名方法
- c# 匿名方法
- C#的匿名方法
- C#匿名方法
- C# 匿名方法 委托
- C#匿名方法
- c#匿名方法
- C# 匿名方法
- c#的匿名方法
- C#匿名方法
- C# 匿名方法
- c#匿名方法
- 软件工程学习笔记1
- MeanShift用于彩色图像分割(OpenCV)
- 欢迎使用CSDN-markdown编辑器
- GAN解读
- 【say something】
- C#匿名方法实现Java匿名类功能
- spark(4)-高可用HA zookeeper原理及环境搭建
- PAT乙级 1028. 人口普查 C语言
- HDU 2700 Parity【字符处理】
- Java实现Python的for...else或while...else逻辑结构
- Linux系统运行时出现的问题
- 隐藏标题栏,状态栏,导航栏,显示全屏
- 自我定位
- navgation