Warum werden IDE0007 und IDE0008 zwischen .NET 6.0 und .NET 8.0 ausgetauscht?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Warum werden IDE0007 und IDE0008 zwischen .NET 6.0 und .NET 8.0 ausgetauscht?

Post by Anonymous »

Dieses Projekt zielt sowohl .NET 6.0 als auch .NET 8.0 ab, von denen einer Var nicht mag, und der andere will es. Wie macht das Sinn? < /P>

Code: Select all

protected static int PartialSerialize(int size, int offset, T data, byte[] buffer)
{
IntPtr ptr = Marshal.AllocHGlobal(size); //IDE0007 (.NET 6.0)
Marshal.StructureToPtr(data!, ptr, false);
Marshal.Copy(ptr, buffer, offset, size);
Marshal.FreeHGlobal(ptr);
return offset + size;
}

protected static T? PartialDeserialize(int size, ref int offset, byte[] buffer)
{
var ptr = Marshal.AllocHGlobal(size); //IDE0008 (.NET 8.0)
Marshal.Copy(buffer, offset, ptr, size);
var t = (T?)Marshal.PtrToStructure(ptr, typeof(T));
Marshal.FreeHGlobal(ptr);
offset += size;
return t;
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post