我知道Func <>用於傳遞一個方法,該方法具有要在另一個方法內使用的返回值。我知道Action <>用於傳遞一個沒有返回值的方法在另一個方法中使用。有沒有辦法傳遞一個屬性,所以它的get/set可以在另一個方法中使用?如果可能的話,如何傳遞C#屬性以便像方法一樣使用?
例如,下面是使用方法Func鍵<>:
public bool RangeCheck (int minVal, int maxVal, Func<< int, int >> someMethod)
{
bool retval = true;
try
{
for (int count = min; count <= max; count++)
{
int hello = someMethod(count);
}
}
catch
{
retval = false;
}
return retval;
}
我所尋找的是這樣的:
public bool RangeCheck(int min, int max, Prop<<int>> someProperty)
{
bool retval = true;
try
{
for (int count = min; count <= max; count++)
{
someProperty = count;
}
}
catch
{
retval = false;
}
return retval;
}
是那裏有什麼樣呢?我找不到任何東西。這將是非常有用的。謝謝。
你可以使用反射,或lambda表達式可以想象這樣做,作爲一個答案提示,或一個包裝類。然而,至少可以這樣說,以這種方式使用屬性讓我感覺非常非常規。 – Mihai
@Mhaihai,如果參數本身包含賦值,會不會發現它是非常規的?這與使用'out'和可讀性幾乎相同。 'RangeCheck(0,10,x => class.Property = x)' – Silvermind
嗯,我總是試圖通過拋出一個值來檢查一個對象,然後看看這個對象是什麼。另外,如果你想在一個對象上設置一個屬性,爲什麼不把對象本身作爲參數? – Mihai