C# 为什么可以';我不能设置数组值吗?为什么赢了';它不是在拉绳子吗?

C# 为什么可以';我不能设置数组值吗?为什么赢了';它不是在拉绳子吗?,c#,arrays,class,casting,non-static,C#,Arrays,Class,Casting,Non Static,Player是Player对象的数组: class Player { private string name = ""; public Player(string name) { name = "Player"; } public string Name { get { return name; } set { name = value; } } 您正在尝试将字符串放入数组中 pr

Player
Player
对象的数组:

class Player
{
    private string name = "";



    public  Player(string name)
    {
        name = "Player";

    }


    public string Name {
        get { return name; }

        set { name = value; }

    }
您正在尝试将字符串放入数组中

private Player[] players = new Player[2];
这不起作用,您只能在数组中放置
Player
的实例

players[i] = (string)"Player";

Player
Player
对象的数组:

class Player
{
    private string name = "";



    public  Player(string name)
    {
        name = "Player";

    }


    public string Name {
        get { return name; }

        set { name = value; }

    }
您正在尝试将字符串放入数组中

private Player[] players = new Player[2];
这不起作用,您只能在数组中放置
Player
的实例

players[i] = (string)"Player";

因为您的代码没有提供从字符串到播放器的格式。你需要这样的东西:

players[i] = new Player("Player1");
当然,您需要一个接受字符串参数的播放器构造函数


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

因为您的代码没有提供从字符串到播放器的格式。你需要这样的东西:

players[i] = new Player("Player1");
当然,您需要一个接受字符串参数的播放器构造函数


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

它应该是player[i]=new player(){};
播放器
不是
系统字符串
。可能是这样的:
players[i]=新玩家{Name=“Player”+i}
(假定是
名称
属性)Hello@TimSchmelter我已经在上面添加了Player类。你觉得怎么样?@diam:
players[i]=新玩家(“玩家”)。请随意更改每个玩家的名称(如我最后的评论所示)。构造函数应该指定给定的名称,而不是常量
“player”
,即
this.name=name应该是player[i]=newplayer(){};
播放器
不是
系统字符串
。可能是这样的:
players[i]=新玩家{Name=“Player”+i}
(假定是
名称
属性)Hello@TimSchmelter我已经在上面添加了Player类。你觉得怎么样?@diam:
players[i]=新玩家(“玩家”)。请随意更改每个玩家的名称(如我最后的评论所示)。构造函数应该指定给定的名称,而不是常量
“player”
,即
this.name=name为什么不转换字符串?
事实上,编译器错误非常清楚地说明了问题所在
无法将类型字符串隐式转换为播放器
(我使用显式转换是错误的)错误是由于缺少隐式转换,但修复方法几乎肯定是只将正确类型的实例分配到数组中。简单明了:
players[i]=newplayer(“Player”)
不建议提供从type
a
到type
B
的转换运算符。这一点都不简单。大多数时候,它只是让人困惑,是讨厌的bug的来源。我对这个问题给出了一个直截了当的答案<代码>为什么不转换字符串?
事实上,编译器错误非常清楚地说明了问题所在
无法将类型字符串隐式转换为播放器
(我使用显式转换是错误的)错误是由于缺少隐式转换,但修复方法几乎肯定是只将正确类型的实例分配到数组中。简单明了:
players[i]=newplayer(“Player”)
不建议提供从type
a
到type
B
的转换运算符。这一点都不简单。大多数时候,它只是令人困惑,是讨厌的bug的来源。