gpt4 book ai didi

C# 面向对象的子调用返回类型 "this"

转载 作者:太空狗 更新时间:2023-10-30 00:12:04 26 4
gpt4 key购买 nike

我有 2 个类,每个类都在所有函数中返回自身:

public class Parent{
public Parent SetId(string id){
...
return this
}
}

public class Child : Parent{
public Child SetName(string id){
...
return this
}
}

我想启用这种API:

new Child().SetId("id").SetName("name");

SetNameSetId 后无法访问返回 ParentSetNameChild 上.

如何?

最佳答案

如果你真的想要这种流畅的行为,并且 Parent 类可以抽象,那么你可以这样实现:

public abstract class Parent<T> where T : Parent<T>
{
public T SetId(string id) {
return (T)this;
}
}

public class Child : Parent<Child>
{
public Child SetName(string id) {
return this;
}
}

现在可以这样写:

new Child().SetId("id").SetName("name");

关于C# 面向对象的子调用返回类型 "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939171/

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