1 c#
我试图访问一个对象数组的成员,这可能吗?
我已经声明了一个名为Particle的结构,并初始化了一个约为40个粒子的"粒子"对象数组,现在我需要访问每个粒子,例如:particle.Gbest任何人都可以帮忙吗?
这是我的代码:
struct particle
{
double[] position = new double[100];
double Gbest, Lbest;
double Pconst = 0.5;
}
object[] swarm = new object[swarm_size];
for (int i = 0; i < swarm_size; i++)
{
swarm[i] = new particle();
}
Run Code Online (Sandbox Code Playgroud)
此代码无效,以:
struct particle
{
double[] position = new double[100];
}
Run Code Online (Sandbox Code Playgroud)
您不能在结构中为实例变量指定变量初始值设定项.
但是,访问另一个对象或值中的数据很容易 - 如果可以访问的话.在这种情况下,您的字段是私有的,并且您没有提供任何访问方法或属性,因此如果没有更多代码,您将无法"从外部"获取它们.
这是一些修改过的代码:
public class Particle
{
private readonly double[] positions = new double[100];
// TODO: Rename these to something useful
public double Gbest { get; private set; }
private double Lbest;
private double Pconst = 0.5;
public Particle(int g)
{
Gbest = g; // Or whatever
}
}
List<Particle> swarm = new List<Particle>();
for (int i = 0; i < swarmSize; i++)
{
swarm.Add(new Particle(i));
}
double total = 0;
foreach (Particle particle in swarm)
{
total += particle.Gbest;
}
Run Code Online (Sandbox Code Playgroud)
现在这没有做任何特别有用的事情,因为你不清楚你想要做什么 - 但我建议你得到一本关于C#的入门书.Stack Overflow非常适合具体的问题,但我认为你在C#的旅程中已经足够早,一本好的书或教程可以帮助你.
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |