gpt4 book ai didi

C# 如何在不修改它们的情况下使用具有相同属性的 2 个类

转载 作者:行者123 更新时间:2023-12-05 01:49:40 24 4
gpt4 key购买 nike

我在不同的命名空间中有两个相同的类:

namespace NP1 {
public class AAA {
public int A {get; set;}
public int B {get; set;}
}
}

namespace NP2 {
public class AAA {
public int A {get; set;}
public int B {get; set;}
}
}

它们在不同的文件中并且是自动生成的。我无法修改它们。

然后我还有另外两个文件:

using NP1;

public class N1Helper {
(...)
var sth = new AAA(A: some_value, B: some_other_value);
(...)
}

using NP2;

public class N2Helper {
(...)
var sth = new AAA(A: some_value, B: some_other_value);
(...)
}

这些助手的跳过部分是相同的。

我想简化这两个文件,只写一次代码。如果这些命名空间中的类将实现一个接口(interface),我可以做到。

有什么办法可以解决这个问题...

  • 使用泛型?
  • 告诉某处后验NP1.AAANP2.AAA 实现了一个公共(public)接口(interface)?类似于使用部分类并在后期附加接口(interface)信息,但我无法修改自动生成的文件。
  • ...?

最佳答案

Using generics

当然,把类型当作泛型参数就行了。您只是无法实际使用泛型参数,因为它没有实现任何接口(interface):

public class NHelper<TAAA> {
(...)
// this is not going to work
// var sth = new TAAA(A: some_value, B: some_other_value);
(...)
}

using partial classes [...] I can't modify the autogenerated files

部分类必须具有 partial 关键字,而您的自动生成类则不需要。所以没有。

...?

同样没有。 C# 不是像 C++ 这样的鸭子类型语言,它在每一层都是强类型语言。您得到的正是您编写的代码,如果您不想编写代码,您将一无所获。

修复自动生成的文件。

关于C# 如何在不修改它们的情况下使用具有相同属性的 2 个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73829138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com