Java到C#:在Generic中扩展
我试图将这个Java(Android)代码转换为c#(MonoDroid),但我不明白
public class BalloonOverlayView extends FrameLayout
它正在为type参数添加一个约束。 它类似于C#中的where
子句。
在Java中,您有:
public class BalloonOverlayView- extends FrameLayout
其中Item
是必须子类化或实现OverlayItem
类型的类型参数。 在C#中,这将被写为:
public class BalloonOverlayView- : FrameLayout where Item : OverlayItem
您可以看到约束如何移动到最后,但在其他方面类似。 在C#中通常使用前缀为T
类型参数 ,因此我建议使用名称TItem
如下所示:
public class BalloonOverlayView : FrameLayout where TItem : OverlayItem
这有助于明确类型参数和普通类型之间非常重要的区别。
有关何时需要使用类型约束的讨论, 我将在前一个答案中详细讨论。
它与此相同:
public class BalloonOverlayView- : FrameLayout where Item : OverlayItem
或者它是。 我对我没有VS. (我在酒店的电脑上)
这意味着参数化类型Item
必须是OverlayItem
的子类
从语义上讲,这意味着如果不扩展OverlayItem
,则使用参数化类型实例化BalloonOverlayView是没有意义的。
- android volley库在蜂窝数据连接中给出超时错误
- 使用Javafx android-tools创建Android项目后,清空bin,libs,src文件夹
- java.lang.IllegalArgumentException:at android.view.Surface.unlockCanvasAndPost(Native Method)
- ProcessException:org.gradle.process.internal.ExecException以非零退出值2 结束
- 如何在首次运行时填充大型sqlite数据库
- 如何创建我的上面的listview看起来更专业?
- 以编程方式清除Android上的PhoneGap / Cordova应用程序缓存以模拟全新安装?
- OnLongClick停止OnClick
- 如何使用Java在Android中获取Google搜索结果?