gpt4 book ai didi

c# - 为接口(interface)属性提供一个重要的 setter,但不是 getter

转载 作者:行者123 更新时间:2023-12-02 05:25:40 28 4
gpt4 key购买 nike

对于我正在开发的 Unity3d 游戏,我遇到一种情况,我想要一个具有普通 getter 的可读/可写属性,但需要一个 setter 来完成更多工作。我的代码如下所示:

// IColor.cs
interface IColor {
Color colorPainted { get; set; }
}

// Player.cs
public class Player : Monobehaviour, IColor {
// ...
public Color colorPainted {
get { }
set {
colorPainted = value;
// some other code
}
// ...
}
}

不过,我不确定如何处理 get 部分。我不能 return colorPainted;,因为这会导致堆栈溢出。编写的代码无法编译,因为我没有返回值。

我不是 C# 向导,但似乎我需要一个 _colorPainted 支持变量,并通过 get 提供对它的访问>设置。不过,这似乎有点冗长——有更好的方法吗?在 Objective-C 中,我只是让 getter 未实现,但这似乎不起作用。

最佳答案

不幸的是,在 C# 中没有办法解决它。您需要为属性提供支持字段:

// Player.cs

private Color _colorPainted;

public class Player : Monobehaviour, IColor {
// ...
public Color colorPainted {
get { return _colorPainted; }
set {
_colorPainted = value;
// some other code
}
// ...
}
}

关于c# - 为接口(interface)属性提供一个重要的 setter,但不是 getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114616/

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