这是一个简单的问题(这里是C#noob),我找不到如何做到这一点(我有Schildt的C#4.0参考,但不确定我在寻找什么).
假设我有两个不同类创建的对象,但是具有相同名称的字段和/或方法.例如:
public class Object1 {
bool enable;
public void Reset(){
enable = false;
}
}
public class Object2 {
bool enable;
public void Reset(){
enable = false;
}
}
Run Code Online (Sandbox Code Playgroud)
对象非常不同,证明了创建两个不同对象的合理性.但是,我有许多具有常见'enable'字段和'Reset()'方法的对象.
所以这就是我想要做的事情(伪代码或其他任何东西):
void Manipulate(ref object pObj){
(pObj).enable = true;
(pObj).Reset();
}
void Main(){
Manipulate(obj1);
Manipulate(obj2);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我不知道如何创建一个可以指向来自不同类的对象的对象.
谢谢!
感谢所有的答案.我浏览了接口并将它们理解为"别名",并且无法弄清楚它们的用处是什么.
这是接口的用途:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后定义您的Manipulate方法以接受实现此接口的任何类型的参数:
void Manipulate(ICanResetAndEnable obj)
{
// Do whatever.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5591 次 |
| 最近记录: |