C#是否可以自定义/覆盖保持其类名的类?

3 c# inheritance overriding namespaces class

如果我有一个使用namespaceX.classB的类namespaceX.classA,是否可以通过使用相同的命名空间(?)和类名来自定义/覆盖/扩展classB而不破坏ClassA?如果是这样,请你解释一下我是怎么做的?

示例通过向ColumnHeaderCollection添加方法而不破坏ListView进行扩展

Ray*_*Ray 5

也许.这取决于你想做什么以及你是否可以修改B类.

看看扩展方法部分类.

扩展方法允许您在另一个静态类(例如ClassBExtensions)中创建静态方法,让您像在ClassB上一样调用它们.但是,您无权访问扩展类中的任何私有或受保护成员.

Partial Classes允许您直接向类添加成员,但您需要能够修改ClassB的源,因为它需要在两个地方都声明为partial.部分实际上只是将类定义拆分为多个文件的一种方法.

听起来你想要一个扩展方法.

 public static class ColumnHeaderCollectionExtensions
 {
     public static void NewMethod(this ColumnHeaderCollection collection)
     { 
         //do stuff here
     }
 }
Run Code Online (Sandbox Code Playgroud)

然后你可以这样称呼它:

myListView.Columns.NewMethod();
Run Code Online (Sandbox Code Playgroud)