gpt4 book ai didi

c# - C# 中的结构

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:38 26 4
gpt4 key购买 nike

我在我的程序中使用如下结构:

public struct chromo_typ
{
public string bits;
public float fitness;

chromo_typ(string bts, float ftns)
{
bits = bts;
fitness = ftns;
}
};

我在我的 main() 中使用结构中定义的构造函数,即 chromo_typ(string bts, float ftns)。我的 main() 包含以下代码:

chromo_typ[] temp = new chromo_typ[VM_Placement.AlgorithmParameters.pop_size];

chromo_typ ct = new chromo_typ();

int cPop = 0;

//loop until we have created POP_SIZE new chromosomes
while (cPop < VM_Placement.AlgorithmParameters.pop_size)
{
// we are going to create the new population by grabbing members of the old population
// two at a time via roulette wheel selection.
string offspring1 = p.Roulette(TotalFitness, Population);
string offspring2 = p.Roulette(TotalFitness, Population);

//add crossover dependent on the crossover rate
p.Crossover(offspring1, offspring2);

//now mutate dependent on the mutation rate
p.Mutate(offspring1);
p.Mutate(offspring2);

//add these offspring to the new population. (assigning zero as their
//fitness scores)
temp[cPop++] = ct.chromo_typ(offspring1, 0.0f);
temp[cPop++] = ct.chromo_typ(offspring2, 0.0f);

}//end loop

我在 temp[cPop++] = ct.chromo_typ(offspring1, 0.0f);temp[cPop++] = ct.chromo_typ(offspring2, 0.0f) 处收到以下错误;

Error: 'VM_Placement.Program.chromo_typ' does not contain a
definition for 'chromo_typ' and no extension method 'chromo_typ'
accepting a first argument of type 'VM_Placement.Program.chromo_typ'
could be found (are you missing a using directive or an assembly
reference?)

我是否错误地使用了结构?我该如何解决这个问题?

最佳答案

在这种情况下,chromo_typ 是构造函数,但您将其作为实例方法调用。构造函数用于构造对象,即

temp[cPop++] = new chromo_typ(arg1, arg2);

它不是您可以在您的类型的实例上调用的方法。

附带说明一下,在 C# 中命名类型的规范方法是以大写字母开头并使用驼峰式大小写,即

public struct ChromoTyp { }

当然,这不是规则,但遵循社区已经使用的模式通常是个好主意。

关于c# - C# 中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10271420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com