C# 需要在两个不同的类中添加相同的属性
我有两个类,像类A和类B。类A有一些属性,方法和类B只有属性。但这两个类具有相同的属性集C# 需要在两个不同的类中添加相同的属性,c#,C#,我有两个类,像类A和类B。类A有一些属性,方法和类B只有属性。但这两个类具有相同的属性集 我的问题是,如果我在类A中添加任何新属性,我也需要在类B中添加该属性。如果我没有添加方法,则需要显示错误。如何通过C#?实现这一点,您可以使用接口并在类A和类B中实现它。在接口中,定义类A和类B中所需的属性: public interface ICommonProperty { string MyProperty{ get; set; } } 或者您可以使用abstract为a和B创建一个公共类 a
我的问题是,如果我在类A中添加任何新属性,我也需要在类B中添加该属性。如果我没有添加方法,则需要显示错误。如何通过C#?实现这一点,您可以使用接口并在类A和类B中实现它。在接口中,定义类A和类B中所需的属性:
public interface ICommonProperty
{
string MyProperty{ get; set; }
}
或者您可以使用abstract
为a和B创建一个公共类
abstract class BaseClass // Abstract class
{
public int X {get;set;} // property in common for 2 class
}
class A : BaseClass
{
}
class B : BaseClass
{
public int Y {get;set;} // other property of B
}
您可以使用抽象类。abstract关键字使您能够创建不完整的类和类成员,这些类和类成员必须在派生类中实现 下面是一个与您的问题相关的简单示例,但是您可以在这里理解和了解抽象类: 上述程序的输出为:
In class A, vlaue is 5
In class B, vlaue is 5
希望这对您有所帮助。您是否需要一个具有给定属性的基类,a和B都应该继承该基类?如果类B始终具有与类a相同的属性,只需继承即可。但话说回来,为什么它们是两个不同的类呢?
C#-?.0
标记描述中的每一个都包含短语“如果你的问题特别涉及C#?.0特定功能,请使用此标记”。因此根据定义,最多只能应用这三个标记中的一个。请你的问题删除那些不适用的。我想说这取决于他想对这些财产做什么。如果他想抽象地调用这些属性,但它们的工作方式却不一样,那么您的带有接口的解决方案就可以工作了。如果这些属性的功能完全相同,那么按照@ThierryV的解决方案,一个抽象基类就是最好的选择。谢谢你的回答。但我的案例在抽象和界面方面略有不同。在抽象或接口情况下,我们需要在它们自己的基类中添加一个新属性。在我的例子中,如果我在类a中添加了一个新属性(不是抽象和接口),那么我们也必须在类B中实现(声明)该属性,因为您可以从类B中的类a继承吗?谢谢您的回答。但我的案例在抽象和界面方面略有不同。在抽象或接口情况下,我们需要在它们自己的基类中添加一个新属性。在我的例子中,如果我在类a中添加一个新属性(不是抽象和接口),我们也必须在类B中实现(声明)该属性。您只需要将公共属性放在抽象类中。这样,基类的每个派生仍然可以是它自己的解释,并且您可以防止重复自己。
In class A, vlaue is 5
In class B, vlaue is 5