无法设置类的变量(C#)

时间:2016-09-04 18:47:26

标签: c# string class get set

我正在尝试在我创建的类中设置变量。

public class Star
{
    public int       starID         { get; set; }
    public Vector3   position       { get; set; }
    public string    starName       { get; set; }
    public char      starClass      { get; set; }

}

稍后,在同一个文件中,我尝试了以下代码:

public void generateGalaxy()
{
    for(int i = 0; i < numOfStars; i++)
    {
        spawnStar();
    }
}

public void spawnStar()
{
    Star testStar = new Star();

    testStar.starName.set("star1");
}

错误发生在&#39; .set&#39;,消息是:

'string' does not contain a definition for 'set' and no extension method 'set' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我建议:

public void generateGalaxy()
{
    for(int i = 0; i < numOfStars; i++)
    {
        Star testStar = spawnStar();
    }
}

public Star spawnStar()
{
    return new Star(){starName="star1"}; //Using object initializer and anonymous class
}

正如阿列克谢所说:这是另一种可能性。

@Sean McKenna:testStar.starName.set("star1"); //你不需要指定&#34; set&#34;明确。只需使用testStar.starName = "star1";

另外一件事:我建议根据Microsoft C# Coding ConventionsInternal Coding Guidelines开展工作。这意味着重命名类中的属性,如下所示:

public class Star
{
    public int       StarID         { get; set; }
    public Vector3   Position       { get; set; }
    public string    StarName       { get; set; }
    public char      StarClass      { get; set; }
}

根据指南中提供的示例:

public class Foo
{
   int bar;

   public int Bar
   {
      get { return bar; }
      set { bar = value; }
   }
}

由于您不一定需要支持字段,您也可以使用我上面提供的简化版本。