所以,我只是想知道为什么我们需要在c#上两次声明列表的类型,如下例所示:
List<Product> products = new List<Product>();
我在Java上使用过Lists(它们是ArrayLists),但是我们不必这样做。
答案 0 :(得分:5)
你不知道。只需写
var products = new List<Product>();
只要在方法范围内声明了变量即可。
请参见https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/var
修改:
如果问题专门针对Java的diamond operator,允许您编写
List<Product> products = new ArrayList<>();
然后有一些很好的答案: Diamond Syntax in C#
答案 1 :(得分:-3)
您不会两次重复同一件事。
List<Product> products;
声明该类型的变量。
而
products = new List<Product>();
创建一个实例并将其分配给变量。
List<Product> products = new List<Product>();
只是一种在一行中同时执行两者操作的方法。
还要注意有关变量类型和新创建的符号不匹配的情况:https://stackoverflow.com/a/12321186/3346583显然,这在Java中更为常见,正如我在查找Java示例时实际上发现的那样。