草庐IT

c# - C# 垃圾收集器如何找到唯一引用是内部指针的对象?

据我所知,在C#中,ref和out参数是通过仅传递相关值的原始地址来传递的。该地址可以是指向数组中元素或对象中字段的内部指针。如果发生垃圾回收,可能仅对某个对象的引用是通过这些内部指针之一进行的,如:usingSystem;publicclassFoo{publicintfield;publicstaticvoidIncrement(refintx){System.GC.Collect();x=x+1;Console.WriteLine(x);}publicstaticvoidMain(){Increment(refnewFoo().field);}}在那种情况下,GC需要找到对象的开

c# - 使用 DateTime.Now.Ticks 生成唯一的数字 ID

我需要生成一个唯一的数字ID以附加到传入请求。此ID仅临时用于跟踪请求,一旦请求完成处理将被丢弃。此ID将仅在该应用程序的上下文中使用,但需要以高性能多线程方式分配。我正在考虑将DateTime.Now.Ticks用于此ID,但想知道如果同时处理同时请求,DateTime.Now.Ticks是否仍会生成冲突ID?如果有人可以建议一种在多线程环境中生成这些ID的更好方法(最好是不是像Tick那样的Int64的方法),请告诉我。像递增数字这样简单的东西就足够了,只要我不必在递增之前锁定数字即可。 最佳答案 您只需要使用一个静态变量,每次

c# - 如何从文件中获取唯一的文件标识符

在将此问题标记为重复之前,请阅读我写的内容。我已经检查了很多页面中的许多问题来寻找解决方案,但找不到任何东西。在我当前的应用程序中,我使用的是:using(varmd5=MD5.Create()){using(FileStreamstream=File.OpenRead(FilePath)){varhash=md5.ComputeHash(stream);varcc=BitConverter.ToString(hash).Replace("-","").ToLowerInvariant();Console.WriteLine("UniqueID:"+cc);}}这对我来说对于小文件来说

c# - WIN32_Processor::ProcessorId 是否对所有计算机都是唯一的

我想为许可系统使用一些独特的东西。我决定使用Win32_ProcessorManagement类中的ProcessorID。我尝试了两个具有相同处理器类型的不同系统..它显示两个系统的处理器ID相同。我正在使用这段代码publicstaticStringGetCPUId(){StringprocessorID="";ManagementObjectSearchersearcher=newManagementObjectSearcher("Select*FROMWIN32_Processor");ManagementObjectCollectionmObject=searcher.Get

c# - 结合两个整数来创建一个唯一的数字

早上好我一直在寻找一种方法来组合两个整数来创建一个唯一的数字,我有两个表需要组合成第三个具有唯一数字的表,这些是我的表格:TableASchoolIDClassId1075664423110756644532107320110212TableBSchoolIDClassId1085664423101085664453210850110212我需要将这些字段导出到第三张表,将类(class)ID和学校ID合并到一个名为classID的字段中。我需要能够将这些数字组合在一起,然后能够将它们取消组合以将schoolid和classid分开以用于更新目的。我正在考虑连接字符串'schoolid

C# SQLite-net 定义多列唯一

我看到了对SQLite-net中支持多列唯一约束的更改的引用。我知道它可以直接用sqlite完成,但是我更喜欢使用sqlite-net方法来做事。什么是做多列唯一的语法。Single是希望唯一的列上方的[Unique]。 最佳答案 我通过查看项目中包含的实际单元测试找到了答案。它基于在索引属性上使用命名参数。例如:[Indexed(Name="ListingID",Order=2,Unique=true)]publicstringListingNumber{get;set;}[Indexed(Name="ListingID",Ord

c# - 如何生成唯一的 8 位数字?

我正在使用此代码生成一个8位唯一编号。byte[]buffer=Guid.NewGuid().ToByteArray();returnBitConverter.ToUInt32(buffer,8).ToString();此代码是否真的生成了一个唯一的数字,或者它可能会再次重复相同的数字? 最佳答案 GUID不仅仅是一个随机数;它由段组成。如果guid是在同一台计算机上生成的,则某些段根本不会更改。通过仅使用原始128位中的64位,您破坏了guid的结构,很可能破坏了生成数字的唯一性。这question有关guid唯一性的更多信息,请

c# - ASP.NET MVC 4,EF5,模型中的唯一属性 - 最佳实践?

ASP.NETMVC4、EF5、代码优先、SQLServer2012Express在模型中实现唯一值的最佳做法是什么?我有一个places类,它有一个“url”属性,每个地方都应该是唯一的。publicclassPlace{[ScaffoldColumn(false)]publicvirtualintPlaceID{get;set;}[DisplayName("DateAdded")]publicvirtualDateTimeDateAdded{get;set;}[Required(ErrorMessage="PlaceNameisrequired")][StringLength(10

c# - 每个类实例的唯一日志文件

我目前正在运行一个创建一个类的多个实例的Windows服务。在我的解决方案中服务类和所有其他类的顶部,我有这样的东西:privatestaticreadonlyILog_log=LogManager.GetLogger(typeof(SomeClassTypeHere));在我的App.config中,我为单个文件配置了Log4Net:这在大多数方面都非常有效,所有内容都记录到一个文件中。但是,我真的很想为我的服务创建的特定类的每个实例创建一个单独的日志文件。这是一个我们经常需要监控支持的类,我们可以同时运行几个实例。我们不知道哪些实例将在给定时间运行,因此这使得在配置中创建静态文件有

c# - 在插入期间捕获 c# 中的 sql 唯一约束冲突的最佳方法

我在c#中有一个循环,它插入到一个表中。非常基本的东西。在违反唯一约束时抛出的异常对象中是否存在某些东西,我可以使用它来查看有问题的值是什么?或者有没有办法在sql中返回它?我有一系列文件,它们的数据正在加载到表中,我正绞尽脑汁试图找到骗子。我知道我可以将可以找到它的纯基于IO的代码组合在一起,但我想要一些我可以用作更永久解决方案的东西。 最佳答案 您正在寻找的是SqlException,特别是违反主键约束。通过查看抛出的异常的number属性,您可以从此异常中获取此特定错误。这个答案可能与您的需要有关:HowtoIdentifyt