我有一個名為 Parrot 的類,它繼承自 Bird 類,該類繼承自 Animal 類。Animal 類具有列舉性別型別。但是,當我嘗試創建 Parrot 的新物件并像這樣分配列舉值時:
動物.cs
internal class Animal
{
private int id;
private String name;
private int age;
enum GenderType { Female, Male, Unknown }
GenderType gender;
public int Id { get => id; set => id = value; }
public string Name { get => name; set => name = value; }
public int Age { get => age; set => age = value; }
}
}
Form1.cs
.
.
pr = new parrot();
pr.Name = name.Text;
pr.Age = int.Parse(age.Text);
((parrot)pr).Color = extraInfo.Text;
((parrot)pr).FlyingSpeed = int.Parse(fSpeed.Text);
pr.gender = GenderType.Female;
.
.
鳥.cs
internal class Bird:Animal
{
private int flyingSpeed;
public int FlyingSpeed { get => flyingSpeed; set => flyingSpeed = value; }
}
}
鸚鵡.cs
internal class parrot:Bird
{
private string color;
public string Color { get => color; set => color = value; }
}
}
我收到這些錯誤:
當前背景關系中不存在名稱“genderType”
'Animal.genderType' 是一種型別,但用作變數
'genderType':不能通過運算式參考型別;改用“Animal.genderType”
uj5u.com熱心網友回復:
類中的內部型別,例如:
class A {
enum B { C = 0 }
}
不是變數。如果你想系結一個變數Animal并在需要時更改它,你需要一個變數:
class Animal {
//type
enum GenderType { ... }
//variable
GenderType gender;
}
//code:
var animal = new Animal();
animal.gender = GenderType.Female;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/454391.html
