C# 结构中的数组如何赋值?
- C# code
using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace TestCshap{ public struct Elem { public string [] name; } class Program { static void Main(string[] args) { Elem e = new Elem(); e.name[0] = "fsdfsdfsdf"; e.name[1] = "dad"; Console.WriteLine(e.name[0]); Console.WriteLine(e.name[1]); Console.ReadLine(); } }}[color=#FF0000]如上C#代码, e.name[0] = "fsdfsdfsdf";这样做为什么要报错,难道不对吗?怎么改啊?[/color]
[解决办法]
e.name = new string[10];//要先初始化大小
[解决办法]
因为 public string [] name;没设置数组的长度
[解决办法]
确定数组长度以后(假设长度为2)
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace TestCshap
{
public struct Elem
{
public string [] name=new string[2];
}
class Program
{
static void Main(string[] args)
{
Elem e = new Elem();
e.name[0] = "fsdfsdfsdf";
e.name[1] = "dad";
Console.WriteLine(e.name[0]);
Console.WriteLine(e.name[1]);
Console.ReadLine();
}
}
}
[解决办法]
- C# code
Elem e = new Elem(); string[] s = new string[2]; s[0] = "fsdfsdfsdf"; s[1] = "dad"; e.name = s; Console.WriteLine(e.name[0]); Console.WriteLine(e.name[1]); Console.ReadLine();
[解决办法]
3楼:
结构中不能有实例字段初始值设定项
[解决办法]
setvalue
[解决办法]
没有设置初始长度不能用e.name[0] 这样的写法
[解决办法]
- C# code
public int n=2;public string [] name=new string[n];// 数组在初始化的时候规定存储空间也就是数组长度
[解决办法]
Elem em;
em.name = new string[5];
em.name[0] = "3213213213";
[解决办法]
动态的?那就改用ArrayList吧。。
[解决办法]
[解决办法]
Elem e = new Elem();
e.name=new String[2];//必须先进行初始化,才能给其赋值啊。
e.name[0] = "fsdfsdfsdf";
e.name[1] = "dad";
Console.WriteLine(e.name[0]);
Console.WriteLine(e.name[1]);
Console.ReadLine();
------解决方案--------------------
少采用ArrayLIst(),采用泛型List<>
[解决办法]
数组需要先初始化大小,ArrayList就不用了,你可以用ArrayList代替数组