如何在下面的方法中将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;
}
}
答案 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()
应该给你一个新指南