我有兩個相似的類 A 和 B,其中包含以下代碼:
//A or B depending on class
public class LogicA
{
public List<Members> MembersA { get; set; } = new List<Member>();
public void AddMember(Member member)
{
MembersA.Add(member);
}
public List<Member> GetResultA()
{
return MembersA;
}
}
我想在另一個類(比如 logicC)中使用 MembersA 和 MembersB 串列。我見過類似的問題,它們大多涉及單繼承。我想使用的程序是通過多重繼承從第三個類中的兩個不同類創建串列的實體,但在 C# 中,只有介面支持多重繼承,我正在使用類,因此我的問題。
uj5u.com熱心網友回復:
有什么理由只需要使用繼承嗎?
一般來說,使用 Class 成員的方式如下
class logicC
{
static void Main(string[] args)
{
LogicA logicA = new LogicA();
LogicB logicB = new LogicB();
List<Member> memberA = logicA.memberA;
List<Member> memberB = logicB.memberB;
}
}
uj5u.com熱心網友回復:
兩者都Logica.GetResultA和大概 LogicB.GetResultB回傳 List<Member>。所以沒有問題
LogicC 可以
class LogicC{
void NoodleOnList(List<Member> input){
....
}
}
然后
LogicC lc;
lc.NoodelOnList(la.GetMembersA());
lc.NoodelOnList(lb.GetMembersb());
uj5u.com熱心網友回復:
那么,您應該重新考慮您的設計選擇并考慮如何使您的代碼不易更改。
您可以創建一個新類來聚合來自 A、B 的串列。通過組合,這個新類可以訪問來自其他內部物件的串列。
public class logicC {
public LogicA logicA;
public LogicB logicB;
public List<Member> GetResultC() => logicA.GetResultA().Concat(logicB.GetResultB());
}
uj5u.com熱心網友回復:
您可以static為您的方法使用修飾符,例如:
public static class LogicA
{
public static List<Members> MembersA { get; set; } = new List<Member>();
public static void AddMember(Member member)
{
MembersA.Add(member);
}
public static List<Member> GetResultA()
{
return MembersA;
}
}
并像這樣使用它:
using YourProject;
public class LogicC
{
Members members = new();
List<Members> membersList = new();
LogicA.AddMember(member);
membersList = LogicA.GetResult();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425619.html
上一篇:使用模型類(如python中的概念)從JSON中僅獲取必要的資料
下一篇:學習成對交換節點
