我应该将 Delegate 设置为 self 以使用事件委托吗?

Should I set Delegate to self to use an event delegate?

我正在学习事件委托。以下代码将折线添加到地图视图。但是,它没有添加行。是因为我没有设置delegate吗?

var locations = new[] 
{ 
    new CLLocationCoordinate2D (13.0070069814252, 77.5551893019917), 
    new CLLocationCoordinate2D (13.0070831090451, 77.5543436352358) 
};

MKPolyline processedPolyline = MKPolyline.FromCoordinates(locations.ToArray());

map.OverlayRenderer += delegate(MKMapView mapView, IMKOverlay overlay)
{
    MKPolylineRenderer polylineRenderer = new MKPolylineRenderer(overlay as MKPolyline);
    polylineRenderer.LineWidth = 4.0f;
    polylineRenderer.StrokeColor = UIColor.Green;
    return polylineRenderer;
};
map.AddOverlay(processedPolyline);

在 Xamarin 中,C# 事件通常用于代替 Objective-C 样式委托(尽管后一种选项几乎始终可用)。 Xamarin 有一些关于这些概念的[文档]。

无论如何,你的代码对我来说工作正常:

P.S。您不需要 locations.ToArray() - 只需 locations 就足够了,因为它已经是一个数组。