-2
我想在c#中爲kinect製作clap程序,但我得到這個錯誤「並非所有的代碼路徑都返回一個值」GetJointDistance方法 這裏是我的方法不是所有的代碼路徑在c#中返回一個值#
我想在c#中爲kinect製作clap程序,但我得到這個錯誤「並非所有的代碼路徑都返回一個值」GetJointDistance方法 這裏是我的方法不是所有的代碼路徑在c#中返回一個值#
你理應寫入的方法返回一個float
:
private float GetJointDistance
然而,你的方法的身體沒有任何return
報表 - 這樣不僅不所有代碼路徑返回一個值,沒有做。
則應該通過添加返回解決這個問題:
private float GetJointDistance(Joint handR, Joint handL)
{
Skeleton s = new Skeleton();
Joint handRight = s.Joints[JointType.HandRight];
Joint handLeft = s.Joints[JointType.HandLeft];
if (handRight.TrackingState == JointTrackingState.Tracked &&
handLeft.TrackingState == JointTrackingState.Tracked)
{
this.GetJointDistance(handRight, handLeft);
}
return xyz; // xyz must be a float
}
請注意,如果您if
聲明意味着你需要返回別的東西,你需要在if
聲明第二return
。儘管目前你很可能會溢出籌碼,具體取決於國家隊的狀態是多少次Tracked
。
或者,讓你的方法返回void
,你似乎並不需要在瞬間返回:
private void GetJointDistance
你的方法是應該返回'float'沒有一個單一的'return'聲明在裏面。 – 2014-11-01 22:20:42
在這個方法中,也沒有什麼可以改變'handRight'和'handLeft'的最終值,所以我想你的下一個問題將是堆棧溢出異常,因爲你正在進行遞歸。 – 2014-11-01 22:22:32
錯誤消息非常清楚。你有沒有讀過它的實際單詞? (雖然它可能會更好:「沒有代碼路徑返回值」會更具體。)通過「Error」這個詞並**讀取實際的消息本身**是非常重要的 - 消息具有含義,通常他們很清楚。 – 2014-11-01 22:26:21