gpt4 book ai didi

c# - 如何通过对象指针调用 C# 对象方法/更改字段?

转载 作者:行者123 更新时间:2023-11-30 19:49:02 25 4
gpt4 key购买 nike

这是一个简单的问题(此处为 C# 菜鸟),我找不到如何执行此操作(我有来自 Schildt 的 C# 4.0 引用资料,但不确定我在寻找什么)。

假设我有两个由两个不同类创建的对象,但具有同名的字段和/或方法。例如:

public class Object1 {
bool enable;
public void Reset(){
enable = false;
}
}

public class Object2 {
bool enable;
public void Reset(){
enable = false;
}
}

对象非常不同,证明创建两个不同的对象是合理的。但是,我有许多对象具有通用的“启用”字段和“重置 ()”方法。

所以这是我想做的(用伪代码或其他任何形式):

void Manipulate(ref object pObj){
(pObj).enable = true;
(pObj).Reset();
}

void Main(){
Manipulate(obj1);
Manipulate(obj2);
}

我该怎么做?我不确定如何创建一个可以指向来自不同类的对象的对象。

谢谢!


感谢大家的回答。我浏览了界面并将它们理解为“别名”,但无法弄清楚它们有什么用处。

最佳答案

这就是接口(interface)的用途:

public interface ICanResetAndEnable
{
// Note: interfaces cannot have fields, only properties and methods.
bool Enable { get; set; }
void Reset();
}

public class Object1 : ICanResetAndEnable {
bool Enable { get; set; }
public void Reset(){
Enable = false;
}
}

public class Object2 : ICanResetAndEnable {
bool Enable { get; set; }
public void Reset(){
Enable = false;
}
}

然后定义您的 Manipulate 方法以接受实现此接口(interface)的任何类型的参数:

void Manipulate(ICanResetAndEnable obj)
{
// Do whatever.
}

关于c# - 如何通过对象指针调用 C# 对象方法/更改字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4588050/

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