方法NewGuid没有重载需要1个参数

时间:2012-03-16 00:33:07

标签: c# asp.net .net guid

如何在下面的方法中将int(StaffID)转换为字符串。它不会接受Guid.NewGuid(ToString)

public void submitStaffID(StaffEnity staff)
{
    staff.StaffID = Convert.ToInt32(Guid.NewGuid(ToString));
    StaffEntity.Add(staff);
}
  

方法没有重载NewGuid需要1个参数。

namespace StaffEntity
{
    [DataContract]
    public class StaffEnity
    {
        [DataMember]
        public int StaffID;
        [DataMember]
        public string Forename;
        [DataMember]
        public string Surname;
        [DataMember]
        public DateTime TimeAdded;
    }
}

6 个答案:

答案 0 :(得分:3)

您正在寻找:

staff.StaffID = Convert.ToInt32(Guid.NewGuid().ToString());

但是之后将其转换为int32将无效!

  

来自MSDN:

     

GUID是128位整数(16字节),可以在所有中使用   计算机和网络,无论何处需要唯一标识符。这样   标识符被复制的可能性非常低。

     另一方面,

一个int结构:

     

表示32位有符号整数。

     

所以,你不能在不丢失大部分内容的情况下从Guid转换为int   信息。

https://stackoverflow.com/questions/4518684/convert-guid-to-int

你可能意味着这个

staff.StaffID = new Random().Next(int.MinValue, int.MaxValue);

注意正确使用Random类:
Random number generator only generating one random number

答案 1 :(得分:2)

好吧,错误消息告诉您问题... Guid.NewGuid不接受任何参数。您打算将ToString放在方法调用中。

staff.StaffID = Convert.ToInt32(Guid.NewGuid().ToString());

当然,Guid表示128位值,对于int来说太大了,这当然无法正常工作。

为什么不让StaffId成为Guid开头(不是Guid转换为其他内容,而是Guid StaffId { get; set; })或不是随机值?

答案 2 :(得分:1)

我认为Guid.NewGuid().ToString()可行。

答案 3 :(得分:1)

也许你的意思是这样做:

staff.StaffID = Convert.ToInt32(Guid.NewGuid().ToString());

答案 4 :(得分:0)

你到底想要做什么? “ToString”变量代表什么?

此外,Guid.NewGuid方法没有任何参数。正确使用只是Guid.NewGuid()而不是Guid.NewGuid(ToString)

这将为您生成随机GUID。如果你担心碰撞,不要介意。两次生成相同GUID的可能性非常小。

答案 5 :(得分:0)

ToString()是您申请的方法。

Guid.NewGuid().ToString()应该给你一个新指南