为什么我不能设置数组值?为什么它不投弦?
Why can't I set the array value? why won't it cast the string?
Private Player[] players = new Player[2];
private int currentPlayerIndex = 0;
public Game(Form1 form)
{
for (int i = 0; i < players.Length; i++) {
players[i] = (string)"Player"; }
我一直收到错误消息,说它无法将字符串转换为播放器类型...
下面是播放器 class,它还设置了 属性 名称...
class Player
{
private string name = "";
public Player(string name)
{
name = "Player";
}
public string Name {
get { return name; }
set { name = value; }
}
players
是 Player
个对象的数组:
private Player[] players = new Player[2];
您正在尝试将字符串放入数组中。
players[i] = (string)"Player";
那不行,你只能把Player
的一个实例放到数组
players[i] = new Player("Player1");
因为您的代码没有提供从字符串到播放器的 implicit cast。你需要这样的东西:
public static implicit operator Player(string str)
{
return new Player(str);
}
当然,您将需要一个接受字符串参数的 Player 构造函数。
编辑:将显式更改为隐式。隐式运算符将导致代码编译。
Private Player[] players = new Player[2];
private int currentPlayerIndex = 0;
public Game(Form1 form)
{
for (int i = 0; i < players.Length; i++) {
players[i] = (string)"Player"; }
我一直收到错误消息,说它无法将字符串转换为播放器类型...
下面是播放器 class,它还设置了 属性 名称...
class Player
{
private string name = "";
public Player(string name)
{
name = "Player";
}
public string Name {
get { return name; }
set { name = value; }
}
players
是 Player
个对象的数组:
private Player[] players = new Player[2];
您正在尝试将字符串放入数组中。
players[i] = (string)"Player";
那不行,你只能把Player
的一个实例放到数组
players[i] = new Player("Player1");
因为您的代码没有提供从字符串到播放器的 implicit cast。你需要这样的东西:
public static implicit operator Player(string str)
{
return new Player(str);
}
当然,您将需要一个接受字符串参数的 Player 构造函数。
编辑:将显式更改为隐式。隐式运算符将导致代码编译。