作爲一項技術練習,我嘗試創建不同的方法來計算三角形周長。使用相同的數據類型重載
當給出三條邊時 - 任務很簡單,但當我們得到兩條邊和它們之間的角度或一條邊和兩條邊時 - 我們應該應用一些三角函數操作。
爲了三種情況之間進行區分,我聲明邊緣作爲小數和角度作爲浮子,從而給了系統一提示該方法過載(例如:十進制&浮子&十進制=> 2個邊和一個角度)。
這不是最優雅的解決方案,因爲數據類型不應該用於傳輸信息。 另一種選擇是再添變數,這將獲得價值1或2或3作爲指示什麼的問題類型,但在這種情況下沒有必要對超載..
有沒有一種方法來創建三個重載的方法,每個方法都得到三位小數,並且添加某種方式來表示這三個變量代表什麼(以及使用哪種方法)?
你有任何的代碼嗎? @Geri Reshef – zahed
使用不同類型是正確的方法。使用'decimal'和'float'是錯誤的方法。你應該創建了兩個(不可變的)'struct','Length'和'Angle',可以明確地從'decimal' /'double'轉換爲/。 – xanatos
聽起來像3個不同的函數,應該有3個不同的名字 –