gpt4 book ai didi

oop - Dart 编码风格

转载 作者:行者123 更新时间:2023-12-03 03:11:01 25 4
gpt4 key购买 nike

也许这不是 Dart具体问题。

我有 :

class A {
int a;

A(this.a);
}

class B extends A {
String b;

B(a, this.b) : super(a);
}

所以你看,类(class) A有一个属性 int aB只是扩展 A并且有一个额外的属性 String b和一个包装类 C :

class C {
A c;

C(this.c);

void doSomething() {
if (c is B) {
print(c.b);
} else {
print(c.a);
}
}

}

Dart 编辑器提示 c doesn't have a getter b .你如何处理这个问题?我想摆脱警告,但我不想添加属性 b上课 A

最佳答案

(c as B)有效,但会进行动态类型检查(可能会被 VM 消除)。

如果您只想删除警告,而不更改程序的语义,您可以分配给正确类型的临时变量:

void doSomething() {
if (c is B) {
B b = c;
print(b.b);
} else {
print(c.a);
}
}

关于oop - Dart 编码风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17275521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com