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

本文关键字:需要 1个 参数 重载 NewGuid 方法 | 更新日期: 2023-09-27 18:27:53

如何在下面的方法中将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;
    }
}

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

您正在寻找这个:

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

但是之后将其转换为int32是行不通的!

来自MSDN:

GUID是一个128位整数(16字节),可用于所有计算机和网络,只要需要唯一标识符。这样的标识符被复制的概率非常低。

另一方面,一个int结构:

表示一个32位有符号整数。

因此,如果不丢失大部分信息

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

你可能是指这个

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

正确使用Random类的注意事项:
随机数生成器只生成一个随机数

好吧,错误消息告诉你问题。。。Guid.NewGuid不接受任何参数。当您打算将ToString放在方法调用的后面时,您将其放在了方法调用的内部。

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

这当然不能正常工作,因为Guid代表128位的值,对于int来说太大了

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

我认为Guid.NewGuid().ToString()会起作用。

也许你想这么做:

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

您到底想做什么?"ToString"变量代表什么?

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

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

ToString()是一个应用于的方法。

Guid.NewGuid().ToString()应该为您提供一个新的guid