带有设置者和获取者的银行帐户

时间:2019-03-24 12:58:44

标签: c#

所以我有一个练习,需要做一个银行帐户计划。纯粹的目标是让我理解设置者/获取者,因此非常简单。

我想写我的私人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;
        }

    }
}

1 个答案:

答案 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()
   {...}
}

在此代码中,只能通过创建的方法从类内部设置金钱。