編輯:這是一個示例程序,我明白在linq中有一個sum運算符。但是,我試圖特別詢問如何將指針傳遞給屬性以完成與它相關的複雜操作,而不一定是此求和算法。傳遞一個類屬性的指針
可以說我有一個這樣的類:
class Point
{
double x {get; set;}
double y {get; set;}
}
,在我的主程序我有2種功能。
double function1(List<Point> PointList)
{
double sum = 0.0;
foreach(Point p in PointList)
{
sum += p.x;
}
return sum;
}
double function2(List<Point> PointList)
{
double sum = 0.0;
foreach(Point p in PointList)
{
sum += p.y;
}
return sum;
}
這些功能是完全相同的,除了一個是總結的X值,另一個是總結的Y值。由於它們非常相似,所以我希望將它們結合起來,這樣我基本可以通過該列表中的點,並且可以確定我想要執行基於X或Y的計算。
我知道我可以放入一個switch語句,並根據枚舉或者定義的數字來告訴它X或Y是X還是Y,如果這是一個正常的功能,我想我可以使用s委託,但這是一個屬性,所以我不知道如何翻譯。
那麼,如何結合這些功能集成到類似:
double bothFunctions(List<Point> PointList, var propertyToUse)
{
double sum = 0.0;
foreach(Point p in PointList)
{
sum += p.propertyToUse;
}
return sum;
}
凡propertyToUse點X或Y的
'PointList'顯然不能是'out'參數。你確定這段代碼好嗎? – jdehaan 2013-02-26 22:55:06
在我的真實程序中,它必須是一個輸出,但對於這個例子,它不會,我會刪除它。 – Xantham 2013-02-26 23:03:12
@Xantham在這種情況下,指針只是一個委託。看到我的答案。 – 2013-02-26 23:05:02