Blockchain 稳固性:作为成员获取错误“;余额”;在参数相关查找后找不到或不可见

Blockchain 稳固性:作为成员获取错误“;余额”;在参数相关查找后找不到或不可见,blockchain,ethereum,solidity,decentralized-applications,Blockchain,Ethereum,Solidity,Decentralized Applications,我正在尝试编写一个去中心化的应用程序来购买音乐会门票。由于某种原因,part owner.transfer(this.balance)一直给我错误信息。而且因为solidity有太多的版本,所以我找不到适合我的版本。请帮我做这件事。多谢各位 错误信息 Getting error as Member “balance” not found or not visible after argument-dependent lookup. Use address(this).balance to acc

我正在尝试编写一个去中心化的应用程序来购买音乐会门票。由于某种原因,part owner.transfer(this.balance)一直给我错误信息。而且因为solidity有太多的版本,所以我找不到适合我的版本。请帮我做这件事。多谢各位

错误信息

Getting error as Member “balance” not found or not visible after argument-dependent lookup. Use address(this).balance to access address owner.transfer(this.balance)
坚固性代码

pragma solidity 0.6.6;

contract Event {
    
    address owner;
    uint public tickets;
    string public description;
    string public website;
    uint constant price = 0.01 ether;
    mapping (address => uint) public purchasers;
    
    constructor(uint t,  string memory _description, string memory _webstite) public {
        owner = msg.sender;
        description = _description;
        website = _webstite;
        tickets = t;
    }
    
    // function () payable {
    //     buyTickets(1);
    // }
    
    function buyTickets(uint amount) public payable {
        if (msg.value != (amount * price) || amount > tickets) {
            revert();
        }
        purchasers[msg.sender] += amount;
        tickets -= amount;
        if (tickets == 0) {
            owner.transfer(this.balance);
        }
    }
    
    function refund(uint numTickets)  public {
        if (purchasers[msg.sender] < numTickets) {
            revert();
        }
        
        msg.sender.transfer(numTickets * price);
        purchasers[msg.sender] -= numTickets;
        tickets += numTickets;
    }
    
}

转账只能用于应付地址。 尝试如下

address payable owner;
...
owner.transfer(address(this).balance);
address payable owner;
...
owner.transfer(address(this).balance);