在C#中,我可以制作一个列表并向其添加不同类型的项。只要它们继承基类即可。例如:
using System;
using System.Collections.Generic;
class Parent
{
public int p;
public Parent(int p)
{
this.p = p;
}
}
class A : Parent
{
public int a;
public A(int p, int a) : base(p)
{
this.a = a;
}
}
class B : Parent
{
public int b;
public B(int p, int b) : base(p)
{
this.b = b;
}
}
class Program
{
static void Main(string[] args)
{
List<Parent> list = new List<Parent>();
A a = new A(10, 20);
B b = new B(30, 40);
list.Add(a);
list.Add(b);
A l_a = list[0] as A;
B l_b = list[1] as B;
Console.WriteLine(String.Format("{0}, {1}", l_a.p, l_a.a)); // 10, 20
Console.WriteLine(String.Format("{0}, {1}", l_b.p, l_b.b)); // 30, 40
}
}
Rust不是面向对象编程语言,但我想知道是否可以实现类似的功能。有办法吗?
您可以创建枚举并将其
不同的变体存储在向量中。
示例:
use std::fmt::{Display, Formatter};
struct A {
a: i32,
}
impl A {
fn new(a: i32) -> Self {
A { a }
}
}
struct B {
b: i32,
}
impl B {
fn new(b: i32) -> Self {
B { b }
}
}
enum Parent {
ChildA(i32, A),
ChildB(i32, B),
}
impl Display for Parent {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
match self {
Parent::ChildA(p, a) => write!(f, "{}, {}", p, a.a),
Parent::ChildB(p, b) => write!(f, "{}, {}", p, b.b),
}
}
}
fn main() {
let mut vec = Vec::new();
let a = Parent::ChildA(10, A::new(20));
let b = Parent::ChildB(30, B::new(40));
vec.push(a);
vec.push(b);
let l_a = vec.get(0).unwrap();
let l_b = vec.get(1).unwrap();
println!("{}", l_a);
println!("{}", l_b);
}
我正在对地图执行firestore查询 没有人工作过,任何帮助都是感激的 谢谢你抽出时间
我试图创建动态下拉,其值是从使用微服务的查找表之一填充,但我已经尝试了许多方式相同,到目前为止,我还没有成功地使其工作。 下面的代码用于调用webservice 这是我的对象类型 仅用于显示目前运行的以下代码 我做了什么我尝试调用webservice在多种方式调用它,尝试铸造服务响应直接使用JSON字符串响应和可能的事情我尝试过。 你能在这里帮忙吗?我们将不胜感激。
问题内容: 我正在尝试开发一种通用的表加载器,其架构在运行时是已知的。这需要具有包含不同类型的元素的列表,并支持各种get和诸如集方法的类,,。元素我考虑的类型有,,,和,和。每个元素的实际类型在运行时都是已知的,我将它们存储在一个List中,描述其架构以进行进一步处理。 我的问题是:我应该在或中存储这样的元素列表吗?还是有更好的方法来实现此类? 问题答案: 由于您的类的共同祖先是,并且由于不会使
我正在尝试合并两个不同类型的列表。我得到了两个不同的API响应从改造在一个android应用程序,第一个列表是一个电影列表定义为 公共类列表{ 我通过以下操作成功地从API中检索到列表 然后,我尝试将一个类型列表和一个类型字符串列表组合起来,以创建一个新类ListingAndImage(字符串是一个URL,我将加载到imageview中) 我的问题是,哪种方式最好将这两个列表组合起来,形成一个列表
问题内容: 我在解组JSON结构时遇到了麻烦: 我实际上需要结果中的第二个切片项。 我目前的尝试是 输出是这样的: 但是我也尝试使用这个: 输出正常: 我还可以引用Result [1]索引: 但是我无法将接口类型转换为任何其他匹配类型。谁能告诉我如何进行界面转换。哪种方法才是“最佳”。 问题答案: 一种选择是将顶级事物解组为最初的一部分。 然后遍历成员,并查看每个成员的第一个字符。如果它是一个对象
问题内容: 有没有办法告诉Hibernate在使用to_char将列连接到另一个表或将NUMBER转换为VARCHAR时将其包装?我遇到的情况是,我的一个表包含一个类型为VARCHAR的通用键列,该列存储另一个表的ID(即Number)。当Hibernate执行它生成的SQL时,我收到一个SQL异常,该SQL使用’=’比较两列。 谢谢… PS:我知道这不是理想的选择,但是我坚持使用模式,因此必须对