C# 需要在两个不同的类中添加相同的属性

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。类A有一些属性,方法和类B只有属性。但这两个类具有相同的属性集


我的问题是,如果我在类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