cuốn sách gpt4 ai đã làm

c# - 空 setter 与属性中没有 setter

In lại Tác giả: Hồ Xil 更新时间:2023-11-01 03:05:07 27 4
mua khóa gpt4 Nike

这两个属性实现有什么区别?

public override string A
{
get { return "s"; }
set { }
}

public override string A
{
get { return "s"; }
}

câu trả lời hay nhất

好吧,因为 MỘT Đúng override,所以基类必须有 both lấyset (否则代码无法编译)例如

public class MyBase {
public virtual String A {
get {
return "getBaseA";
}
set {
throw new NotSupportedException("setBaseA");
}
}
}

现在你有两个不同的派生类:

public class MyDerivedA: MyBase {
public override String A {
get {
return "s";
}
set { // set is overridden, now set does nothing
}
}
}

public class MyDerivedB: MyBase {
public override String A {
get {
return "s";
}
// set is not overridden, same as in the base class
}
}

让我们调用这两个 set 方法:

// Does nothing: overridden MyDerivedA.A.set is called
MyBase test1 = new MyDerivedA();
test1.A = "Sample";

// Will throw NotSupportedException (base MyBase.A.set is called)
MyBase test2 = new MyDerivedB();
test2.A = "Sample";

关于c# - 空 setter 与属性中没有 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38124814/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress