How to fix "DeclarationError: Identifier not found or not unique"?

How to fix "DeclarationError: Identifier not found or not unique"?

我在 calling/deploying 我以前的合同在新合同“SimpleStorage[] public simplestoragearray;”中时遇到错误在代码的第 4 行。

// SPDX-License-Identifier: MIT 

pragma_solidity ^0.8.0;

import "./SimpleStorage.sol";

contract StorageFactory{

SimpleStorage[] public simplestoragearray;

function createsimplestoragecontract() public {
    
    SimpleStorage simplestorage = new SimpleStorage();
    simplestoragearray.push(simplestorage);

}
}

错误信息:

from solidity: DeclarationError: Identifier not found or not unique. --> contracts/test contracts/StorageFactory.sol:8:5: | 8 | SimpleStorage[] public simplestoragearray; | ^^^^^^^^^^^^^

您的合同名称可能与您的文件名称不同。

更改合同名称,使其与文件名相同。

将合同文件命名为与合同相同的名称是标准做法。

所以在 SimpleStorage.sol 里面应该是:

contract SimpleStorage { ... }