Tag: 语言语言设计

C#规范(团队?委员会?)是否曾考虑过这种对象创建语法?

我之前从未发过这种性质的问题,所以如果它不适合SO,那就不要伤害我的感情太糟糕了,我会删除它。 为了尽可能保持我所关心的一切尽可能接近左边距,我一直希望能写下这样的东西: DataService1.DataEntities dataEntities = new(constructorArg1, …) 我认为另一个原因是我喜欢通过使用var得到的额外屏幕空间,当类型已经出现在作业的右侧时,但我的大脑有太多年来在左侧寻找类型。 再说一次,被困在我的方式并不是一个很好的理由,希望有一个规范……

为什么集合初始化表达式需要实现IEnumerable?

为什么会生成编译器错误: class X { public void Add(string str) { Console.WriteLine(str); } } static class Program { static void Main() { // error CS1922: Cannot initialize type ‘X’ with a collection initializer // because it does not implement ‘System.Collections.IEnumerable’ var x = new X { “string” }; } } 但这不是: class X : IEnumerable { public […]