我正在尝试在我创建的类中设置变量。
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?
有什么想法吗?
答案 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 Conventions或Internal 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; }
}
}
由于您不一定需要支持字段,您也可以使用我上面提供的简化版本。