내가 오류 메시지가 계속 사용자 정의 클래스의 배열에 액세스 할 수 없습니다는 연합
listOfBanks [0] .Deposit (50);
및
accntBlnce.text = "계좌 잔고 : \ n"+ listOfBanks [curBank] .GetBalance의 toString() ("C").
나는 3 개의 옵션을 드롭 다운 메뉴에 나열하고 Debug.Log 배열의 항목 수를 3로 계산합니다. 그러나 나는 그들과 아무 것도 할 수 없다. 은행 변수는 inspector의 Dropdown 객체와 AccntBlnce를 내 패널의 텍스트 객체로 설정합니다.
코드는 다음과 같습니다.
Banks.cs
public class Banks : MonoBehaviour {
public Dropdown banks;
public Text accntBlnce;
public Bank[] listOfBanks;
public int curBank = 0;
void Start() {
listOfBanks = new Bank[banks.options.Count];
listOfBanks[0].Deposit(50);
}
void Update() {
curBank = banks.value;
accntBlnce.text = "Account Balance:\n" + listOfBanks[curBank].GetBalance().ToString("c");
}
}
Bank.cs는
public class Bank{
public Bank() { }
public Bank(string orgn, float amntToRprt, float blnce) {
origin = orgn;
amountToReport = amntToRprt;
balance = blnce;
}
public string origin { get; set; }
public float amountToReport { get; set; }
public float balance { get; set; }
public bool Deposit(float amnt) {
if (amnt > 0) {
balance += amnt;
if(amnt > amountToReport) {
FlagForReport();
}
return true;
}
else
return false;
}
private void FlagForReport() {
throw new NotImplementedException();
}
public float GetBalance() {
return balance;
}
public bool Withdraw(float amnt) {
if (amnt > 0) {
if (balance >= amnt) {
balance -= amnt;
return true;
}
else
return false;
}
else
return false;
}
public bool Transfer(float amnt, Bank bank) {
if (amnt > 0) {
if (balance >= amnt) {
if(bank.Deposit(amnt))
balance -= amnt;
return true;
}
else
return false;
}
else
return false;
}
}
그래, 나는이를 입력하고, 내가 바보 생각합니다. 오래도록 프로그래밍되었으므로 오래되었습니다. 질문을 삭제해야합니까? –
@The_Guy 아니요. 사람들은 그것으로부터 배울 것입니다. 유니티 배열 null 물건을 googles 사람이 가능성이 이들을 가로 질러 올 것이다. 더 많은 사람들이 같은 질문을 다시하지 못하게합니다. – Programmer