【发布时间】:2014-07-03 22:39:51
【问题描述】:
每次创建新产品时,我都需要一个唯一的 ID。
我的代码创建相同的 Guid (00000000-0000-0000-0000-000000000000) 我将它添加到列表中的每个项目,它不是唯一的。
如果我在这段代码中做错了什么,请告诉我。这是我的代码。
class Product
{
private Guid _ID ;
private String _Name = string.Empty;
private String _Price = string.Empty;
public Guid ID
{
get { return _ID; }
set { _ID = value; }
}
public string Name
{
get { return (_Name); }
set { _Name = value; }
}
public string Price
{
get { return (_Price); }
set { _Price = value; }
}
public Product(Guid ID, string Name, string Price)
{
_ID = ID;
_Name = Name;
_Price = Price;
}
public Product()
{
// TODO: Complete member initialization
}
public static void Main()
{
List<Product> productList = new List<Product>();
productList.Add(new Product() { Name = "shoe", Price = "80"});
productList.Add(new Product() { Name = "Hand Bag", Price = "180" });
productList.Add(new Product() { Name = "Pen", Price = "8" });
var cheapestItem = (from i in productList orderby i.Price descending select i.Name).Take(1);
Console.WriteLine(cheapestItem);
Console.ReadLine();
}
【问题讨论】:
-
它是
GUID的默认值。这是Guid.Empty。来自documentation; Guid 结构的只读实例,其值全为零。 -
在哪里初始化新的 GUID?
-
为什么所有的反对票?问题的题目值得一个新手,那又怎样?问题很清楚,所以+1。
-
几个月前已经在您自己的问题中回答了:stackoverflow.com/questions/21433670/…
-
请注意,由于
Guid是struct,因此应该期望new Guid()给出零值。这对于任何结构都是如此。