繁体   English   中英

为什么不能设置数组值? 为什么不转换字符串?

[英]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"; }

我不断收到错误消息,无法将字符串转换为播放器类型...

下面是播放器类,该类还设置Name的属性。

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");

因为您的代码没有提供从字符串到Player的隐式转换。 您需要这样的东西:

public static implicit operator Player(string str)
{
    return new Player(str);
}

当然,您将需要一个使用字符串参数的Player构造函数。

编辑:将显式更改为隐式。 隐式运算符将导致代码编译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM