我正在做一个练习来帮助我理解和学习泛型的使用,以及对接口和接口继承的理解。这是通过实现和使用我自己的类来完成的。
我认为我已经1成功完成了部分工作(遵循教程),并且能够毫无问题地进行散列并添加到我的字典中。如果解决方案中有我遗漏的部分,1请随时告诉我。
第二部分是主要问题。根据我的理解,我应该让钥匙是 一个城市的latitude和。longitude我自己的 Dictionary 实现Dict是这样的,Dict<K, V>所以键不可能有 2 个值。
我认为这就是struct可以进来并传递 mystruct作为密钥,同时存储latitude和 的值的地方longitude。
下面我将尝试概述练习描述和要求,以使我的问题更容易理解。
该练习有 2 个部分
第1部分
在这一部分中,您将创建自己的类来实现 IDictionary<K,V>。
为了实现 IDictionary<K,V> 您必须实现 ICollection 和 IEnumerable 接口。
不允许您使用
C#Dictionary 实现作为委托,因为这会使练习变得无关紧要。
第2部分
我们希望使用最近创建的 Dictionary 类将纬度和经度值映射到其匹配的城市。
键本身应该是一个表示由 a和 a
GeoLocation组成的类。制作所有必要的函数和运算符重载,以便可以使用此类作为 Dictionary 类的键latitudelongitude
字典:
public class Dict<K, V>:IEnumerable<KeyValuePair<K,V>>
{
private const int INI_Size = 16;
LinkedList<KeyValuePair<K, V>>[] values; …Run Code Online (Sandbox Code Playgroud) 我现在有一个更新当前用户位置的功能,效果很好。问题是绘制的指针保持在那个确切的位置,因为装饰在小部件内部绘制一次并且永远不会改变。
我已经了解了 Google 如何使用标记对象来实现这一点,但这似乎对我的应用程序不起作用,因为我没有使用法线地图。
void updateLocationPin(LocationData newLocalData, Uint8List imageData){
LatLng latLng = LatLng(newLocalData.latitude!, newLocalData.longitude!);
this.setState(() {
/* marker = Marker(
markerId: MarkerId("home"),
position: latLng,
rotation: 0.5,
draggable: false,
flat: true,
zIndex: 2,
anchor: Offset(0.5, 0.5),
icon: BitmapDescriptor.fromBytes(imageData)
);*/
xPosition = latLng.longitude;
yPosition = latLng.latitude;
ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text("Position: ${xPosition}, ${yPosition}"), duration: Duration(milliseconds: 5000), ), );
});
}
@override
Widget build(BuildContext context) {
var dpr = MediaQuery.of(context).devicePixelRatio;
return Scaffold(
body: SafeArea(
child: Stack(
children: [
GestureDetector(
child: InteractiveViewer(
transformationController: controller,
constrained: …Run Code Online (Sandbox Code Playgroud)