我想在C#中使用struct进行callLog 所以我记得在C中我们有这样的事情:
struct contact
{
string name;
string phone;
}contact_q[200]
为了填写联系人的信息我们有这样的事情:
while(i<200)
{
scanf("%s",student_q[i].name)
}
所以在C#中我们没有那个声明:在struct的结尾处有“contact-q [200]” 我无法处理填写姓名和电话的循环,因为我们没有这样的东西:
for (int i = 0; i < 10; i++)
{
Contacts contact[i]=new Contacts();
}
它有错误:联系[i]
所以帮助我
答案 0 :(得分:1)
对于C#中的解决方案,您已经非常接近正确的语法。尝试中有问题的部分是循环中的赋值。
执行以下操作,您的代码应该编译并运行:
Contacts[] contacts = new Contacts[10];
for (int i = 0; i < contacts.Length; i++)
{
contacts[i] = new Contacts();
}
请注意,结构的名称(Contacts
)有点不幸。它代表单个联系人,但其名称暗示它包含多个联系人 s 。所以,我将C#-struct从Contacts
重命名为Contact
(正如您在C ++示例中所做的那样)。
答案 1 :(得分:0)
在C#中首先声明数组
fixed Contacts contact[10]; // fixed array
或
Contacts contract[] = new Contracts[10]; // dynamic array
然后在循环中
contact[i]=new Contacts();
你对C的记忆有些错误BTW实际上是
typedef struct contact
{
string name;
string phone;
} contact_q[200]
typedef很重要 - 正在创建一个类型(contact_q)
答案 2 :(得分:0)
你想要一个struct
的数组。
可能有用的是
struct contact {
string name;
string phone;
}
struct contact contact_q[200];
然后简单地指定
contact_q[i].name=...
或使用while
循环。
您还可以typedef
:
typedef struct contact {
string name;
string phone;
} contact_it;
contact_it contact_q[200];
参见,例如,