genres.Add我认为您的意思是它和(List<T>.Add方法)之间的区别,Genre.Add可能是变量Genre上的静态方法或实例方法Genre,两者都没有发布。
最终代码中没有行为差异,只是视觉上的差异。
不知道你为什么使用dynamic(也许你正在寻找var?),但不同的是这被称为集合初始化语法.Add,基本上是手动调用的糖:
var genres = new List<Genre> {
new Genre { Name = "Disco" },
new Genre { Name = "Jazz" },
new Genre { Name = "Rock" }
};
相当于:
var genres = new List<Genre>();
genres.Add(new Genre { Name = "Disco" });
genres.Add(new Genre { Name = "Jazz" });
genres.Add(new Genre { Name = "Rock" });
根据您的情况,编译器会.Add为您输出。
这三种在 C# 中创建新 List<string> 的方式有什么区别?
同样在您的示例中,您会看到对象初始化器语法:
new Genre { Name = "Disco" }
这相当于:
var g = new Genre();
g.Name = "Disco";