所以我有一个练习,需要做一个银行帐户计划。纯粹的目标是让我理解设置者/获取者,因此非常简单。
我想写我的私人int货币;仅可通过我的公共get / set int Money访问;有了这些之后,我想使用一种方法,例如提款,从中提款。现在我遇到了问题,当我执行我的withdraw方法时,它告诉我:由于Konto.Konto(int)给出了void的返回,因此无法返回任何值。 (不是逐字解释,而是我的翻译。
我从来没有设置任何无效的东西,所以我看不出我的问题在哪里。预先感谢您对我的帮助。
编辑:我的最终目标是,如果我按1,我可以设置我提取的金额,并且我的系统会向我打印我剩下的值。因此,我向我的方法“提款”了一个提款编号,该编号从我的初始值中减去,然后返回我剩下的值。
namespace ConsoleApp1
{
class Konto
{
private int money;
public int Money
{
get
{
return this.money;
}
set
{
money = value;
}
}
public Withdraw(int money)
{
return Money - money;
}
}
}
答案 0 :(得分:3)
您在取款方法上缺少返回类型。应该是
import UIKit
import ARKit
class DrawingView:UIViewController,ARSCNViewDelegate{
//MARK: Class properties
lazy var sceneView:ARSCNView={
let sv = ARSCNView()
sv.delegate = self
let panToDrawGesture = UIPanGestureRecognizer(target: self, action: #selector(createNodesFromPan(_:)))
sv.addGestureRecognizer(panToDrawGesture)
return sv
}()
//MARK: Lifecycle methods
override func viewDidLoad() {
super.viewDidLoad()
self.setUpViews()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let configuration = ARWorldTrackingConfiguration()
sceneView.session.run(configuration)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}
//MARK: Class methods
func setUpViews(){
self.view.backgroundColor = .lightGray
self.title = "Drawing"
self.view.addSubview(sceneView)
sceneView.frame = self.view.frame
}
//MARK: Other methods
@objc func createNodesFromPan(_ gesture: UIPanGestureRecognizer){
let currentTouchPoint = gesture.location(in: self.sceneView)
guard let featurePointHitTest = self.sceneView.hitTest(currentTouchPoint, types: .featurePoint).first else { return }
let worldCoordinates = featurePointHitTest.worldTransform
let sphereNode = SCNNode()
let sphereNodeGeometry = SCNSphere(radius: 0.005)
sphereNodeGeometry.firstMaterial?.diffuse.contents = UIColor.blue
sphereNode.geometry = sphereNodeGeometry
sphereNode.position = SCNVector3(worldCoordinates.columns.3.x, worldCoordinates.columns.3.y, worldCoordinates.columns.3.z)
self.sceneView.scene.rootNode.addChildNode(sphereNode)
}
}
在C#中,仅类构造函数不需要返回类型。所以
public int Withdrawal(int money)
{
//you weren't setting the money variable to the new amount
Money -= money;
return Money;
}
是有效的,但所有其他方法都需要具有返回类型。另外,就样式/清理而言。您不需要私人支持字段。如果您想初始化帐户中的金额,而仅通过提款和存款方法进行更改,则可以执行以下操作。
class Konto
{
public Konto()
{...}
}
在此代码中,只能通过创建的方法从类内部设置金钱。