如何在不同的类上使用相同的属性和方法? [复制]
Posted
技术标签:
【中文标题】如何在不同的类上使用相同的属性和方法? [复制]【英文标题】:How can I use the same properties and methods on different classes? [duplicate] 【发布时间】:2014-12-17 11:12:12 【问题描述】:我有 3 个类,例如 ClassVersion1、ClassVersion2 和 ClassVariables。 ClassVariables 用于从 Form 中到达其他类的变量。
我认为是这些;
if(version == 1)
ClassVersion1 clss = new ClassVersion1();
else
ClassVersion2 clss = new ClassVersion2();
clss.vars.variable1 = 3;
clss.vars.variable2=5;
clss.DoSomething();
但我必须将函数和变量调用到 if 条件中(两个具有相同名称的对象,不同的类)。我想在条件中创建对象并在条件外使用。
我该怎么做?
【问题讨论】:
您可以使用 BASE-CLASS 或接口 欢迎来到Stack Overflow。请像在源代码中一样格式化您问题中的代码:缩进使代码更易于阅读和理解;这样你的问题就更容易回答了。 【参考方案1】:你可以使用接口:
public interface IVersionedClass
int Variable1 get; set;
string Variable2 get; set;
public class ClassVersion1 : IVersionedClass
public int Variable1 get; set;
public string Variable2 get; set;
public class ClassVersion2 : IVersionedClass
public int Variable1 get; set;
public string Variable2 get; set;
然后像这样使用它:
IVersionedClass myClass;
if(version == 1)
myClass = new ClassVersion1();
else
myClass = new ClassVersion2();
【讨论】:
非常感谢@CodeCaster 我这样做了,但现在,我遇到了新问题。 1. 修饰语“public”无效。 2. 属性、索引器或动态成员访问不能作为 out 或 ref 参数传递。 ????? 这些错误不是由我发布的代码引起的。接口成员没有public
修饰符,不知道你是怎么得到第二个错误的。以上是关于如何在不同的类上使用相同的属性和方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章