我用下面的方法初始化一个CandyBar结构数组,但编译器总是在struct initializer中说多余的元素.我尝试在数组定义中只放置一个结构初始化器,它已编译,但数组的其余2个元素为null
我该怎么办?
struct CandyBar{
string brand;
float weight;
int calories;
};
int main(int argc, const char * argv[]) {
array<CandyBar, 3> ary_cb =
{
{"Mocha Munch", 2.3, 350},
{"Mocha Munch", 2.3, 350},
{"Mocha Munch", 2.3, 350}
};
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我做了以下工作
class Program
{
class GenEnumerator<T> : IEnumerable
{
public T[] Values { get; set; }
public IEnumerator GetEnumerator()
{
for (int i = 0; i < Values.Length; i++)
yield return Values[i];
}
}
static void Main(string[] args)
{
GenEnumerator<string> g = new GenEnumerator<string>();
g.Values = new string[] { "a", "b", "c", "d", "e" };
g.GetEnumerator().MoveNext();
Console.WriteLine(g.GetEnumerator().Current);
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
g.GetEnumerator().Current永远是空的.
但如果我这样做 - var a = g.GetEnumerator();
当前的proeperty得到一个值,并且工作正常
IEnumerator如果我想在Current没有IEnumerator类型变量的情况下使用它是否意味着我必须显式继承该类并实现其方法和属性?
谢谢,罗伊