Ian*_*ink 3 c# java android xamarin.android
我试图将这个Java(Android)代码转换为c#(MonoDroid),但我不明白 <Item extends OverlayItem>
public class BalloonOverlayView<Item extends OverlayItem> extends FrameLayout
Run Code Online (Sandbox Code Playgroud)
它正在为type参数添加一个约束.它类似于whereC#中的子句.
在Java中,您有:
public class BalloonOverlayView<Item extends OverlayItem> extends FrameLayout
Run Code Online (Sandbox Code Playgroud)
哪个Item类型参数必须是子类或实现类型OverlayItem.在C#中,这将被写为:
public class BalloonOverlayView<Item> : FrameLayout where Item : OverlayItem
Run Code Online (Sandbox Code Playgroud)
您可以看到约束如何移动到最后,但在其他方面类似.这是非常在C#中使用前缀名称类型参数常见的做法T,所以我会建议的名字TItem,像这样:
public class BalloonOverlayView<TItem> : FrameLayout where TItem : OverlayItem
Run Code Online (Sandbox Code Playgroud)
这有助于明确类型参数和普通类型之间非常重要的区别.
有关何时需要使用类型约束的讨论,我将在前一个答案中详细讨论.
| 归档时间: |
|
| 查看次数: |
3203 次 |
| 最近记录: |