我使用一類具有以下成員變量如何在C#中保存成員變量的選擇?
class SomeClass
{
int idx0_value;
int idx1_value;
int idx2_value;
//...
}
我不能夠改變這個類的結構。
我使用這個類的一個實例來覈對先前選定的指標,並使用一些if-else
語句分配相應的值賦給變量:
if(indexIFoundEarlier == 0)
valueIWant = aSomeClass.idx0_value;
else if(indexIFoundEarlier == 1)
valueIWant = aSomeClass.idx1_value;
else
valueIWant = aSomeClass.idx2_value;
這似乎是非常低效的。
在C++中,我可以有效地存儲對相關成員的引用,但在C#中這是不可能的,我已經閱讀了關於這個的各種線程。
有沒有更好(更有效率)的方式來緩存我所做的選擇而不改變「SomeClass」的結構?
看看裝飾設計模式。 –
如果效率不是很大的問題,你總是可以使用反射。 – Jashaszun
關於Stack Overflow有很多問題討論在運行時以編程方式選擇和訪問對象成員。在您的具體示例中,使用反射或製作訪問者代表詞典可能是適當的,但用這種含糊不清的問題不可能知道。請提供一個很好的[mcve],清楚地顯示你的場景,解釋你已經研究過的具體技術,以及你在實施一個或多個這些技術時遇到的具體問題。 –