【发布时间】:2021-09-08 17:29:46
【问题描述】:
如何将特征向下转换为 this C# example 中的结构?
我有一个基本特征和几个派生结构,必须将它们推入一个基本特征向量中。
我必须检查向量的每个项目是否可以转换为特定的派生结构,如果是,则将其用作该类型的结构。
This is my Rust code,注释部分不知道怎么实现。
trait Base {
fn base_method(&self);
}
struct Derived1;
impl Derived1 {
pub fn derived1_method(&self) {
println!("Derived1");
}
}
impl Base for Derived1 {
fn base_method(&self) {
println!("Base Derived1");
}
}
struct Derived2;
impl Derived2 {
pub fn derived2_method(&self) {
println!("Derived2");
}
}
impl Base for Derived2 {
fn base_method(&self) {
println!("Base Derived2");
}
}
fn main() {
let mut bases = Vec::<Box<dyn Base>>::new();
let der1 = Derived1{};
let der2 = Derived2{};
bases.push(Box::new(der1));
bases.push(Box::new(der2));
for b in bases {
b.base_method();
//if (b is Derived1)
// (b as Derived1).derived1_method();
//else if (b is Derived2)
// (b as Derived2).derived2_method();
}
}
【问题讨论】: